

Sub Foo(b as Boolean = True, i as Integer = 0, s as String = "Hello")





Call Foo(s = "Goodbye", b = False)

Call Foo(False, 1)





Call Foo(_, 42, _)





data Foo = Foo {b :: Bool, i :: Integer, s :: String}

defFoo = Foo True 0 "Hello"



foo :: Foo -> IO ()





foo defFoo{s = "Goodbye", b = False}



defFoo

s

b



class Def a where

def :: a



instance Def Foo where

def = defFoo



def