-- CPSC 312 - 2023 - Examples of data
module Dataeg where

-- To run it, try:
-- ghci
-- :load Dataeg

data MyListInteger =
               Empty
             | ConsI Integer MyListInteger
   deriving Show

l1 = ConsI 27 Empty
l2 = ConsI 234 (ConsI 27 Empty)

myApp Empty lst = lst
myApp (ConsI h t) lst = ConsI h (myApp t lst)






data FValue =  BooleanF Bool
             | NumberF Int
             | StringF [Char]
             | MissingF

showWhat (BooleanF arg) = "Boolean:"++show(arg)
showWhat (NumberF arg )  = "Int:"++show(arg)
showWhat (StringF arg )  = "String:"++arg
showWhat MissingF      = "Missing"

flist = [BooleanF True, MissingF, NumberF 34, NumberF 22, StringF "wow"]

-- [showWhat e | e <- flist]


data MD = Fun Int 
        | Bar