anchor.diff:       end subroutine destructBox
   end module boxClass
   
  +module colourBoxClass 
  +    use boxClass
  +    implicit none
  +    private
  +    public :: colourBox, printColourBox, setBoxLength, setBoxHeight, setBoxBreadth, destructBox
  +    type, extends(Box) :: colourBox
  +        character (len=20), allocatable :: colour
  +    end type colourBox
  +contains
  +    subroutine setColour(this, newColour)
  +        type(colourBox) :: this
  +        character (*), intent(in) :: newColour
  +        this%colour = newColour
  +    end subroutine setColour
  +    subroutine printColourBox(this)
  +        type(colourBox), intent(in) :: this
  +        real :: volume
  +        volume = this%box%length * this%box%breadth * this%box%height
  +        print *, 'This ', this%colour , ' box has a volume of ', volume
  +    end subroutine printColourBox
  +end module colourBoxClass
  +
   program box_test
        use boxClass
  +     use colourBoxClass
        implicit none
   
        type(Box) :: my_box
  +     type(colourBox) :: my_colour_box
  +
        my_box = Box(2,3,4)
        call printBox(my_box)
        call setBoxLength(my_box, 5.0)
  
positive.code:      call printBox(my_box)
       call destructBox(my_box)
  
  end program box_test
  
negative.code:      private
       public :: Box, printBox, setBoxLength, setBoxHeight, setBoxBreadth, destructBox
       ! Using an implicit constructor
       type :: Box
           real, allocatable :: length
           real, allocatable :: breadth
           real, allocatable :: height
           procedure,nopass,non_overridable :: SetHight => setBoxHeight
       end type Box
  contains
       subroutine printBox(this)
  