CS 5010: Guided Practice 4.4

Which of the following are sensible data definitions, according to Lesson 4.4? Why or why not? Write a template for those that are sensible.

    A Foo is one of
    -- empty
    -- (list Number Foo)
    
    {how is this different from a a ListOfNumber}?
    
    ================
    
    A Blaster is one of
    -- empty
    -- (cons Nat (cons Nat Blaster))
    
    ================
    
    A Gargle is one of
    -- (list Nat)
    -- (cons Nat (cons Nat Gargle))
    
    ================
    
    A GargleBlaster is one of
    -- a Gargle
    -- a Blaster
  

[ANSWER]

For debugging: Click here to validate.