Dickinson { modImports = [] , modDefs = [ Define { declAnn = () , defName = Name { name = "top" :| [] , unique = Unique { unUnique = 6 } , loc = () } , defExpr = Lambda { exprAnn = () , lambdaVar = Name { name = "f" :| [] , unique = Unique { unUnique = 8 } , loc = () } , lambdaTy = TyFun () ( TyText () ) ( TyText () ) , lambdaExpr = Apply { exprAnn = () , exprFun = Var { exprAnn = () , exprVar = Name { name = "f" :| [] , unique = Unique { unUnique = 8 } , loc = () } } , exprArg = Literal { exprAnn = () , litText = "me" } } } } , Define { declAnn = () , defName = Name { name = "main" :| [] , unique = Unique { unUnique = 7 } , loc = () } , defExpr = Let { exprAnn = () , letBinds = ( Name { name = "fun" :| [] , unique = Unique { unUnique = 9 } , loc = () } , Lambda { exprAnn = () , lambdaVar = Name { name = "a" :| [] , unique = Unique { unUnique = 10 } , loc = () } , lambdaTy = TyText () , lambdaExpr = Interp { exprAnn = () , exprInterp = [ StrChunk { exprAnn = () , chunkText = "It's " } , Var { exprAnn = () , exprVar = Name { name = "a" :| [] , unique = Unique { unUnique = 10 } , loc = () } } ] } } ) :| [] , letExpr = Apply { exprAnn = () , exprFun = Var { exprAnn = () , exprVar = Name { name = "top" :| [] , unique = Unique { unUnique = 6 } , loc = () } } , exprArg = Var { exprAnn = () , exprVar = Name { name = "fun" :| [] , unique = Unique { unUnique = 9 } , loc = () } } } } } ] }