Dickinson
{ modImports = []
, modDefs =
[ Define
{ declAnn = ()
, defName = Name
{ name = "greeter" :| []
, unique = Unique
{ unUnique = 5 }
, loc = ()
}
, defExpr = Lambda
{ exprAnn = ()
, lambdaVar = Name
{ name = "name" :| []
, unique = Unique
{ unUnique = 7 }
, loc = ()
}
, lambdaTy = TyText ()
, lambdaExpr = Interp
{ exprAnn = ()
, exprInterp =
[ StrChunk
{ exprAnn = ()
, chunkText = "Hello, "
}
, Var
{ exprAnn = ()
, exprVar = Name
{ name = "name" :| []
, unique = Unique
{ unUnique = 7 }
, loc = ()
}
}
, StrChunk
{ exprAnn = ()
, chunkText = "!"
}
]
}
}
}
, Define
{ declAnn = ()
, defName = Name
{ name = "main" :| []
, unique = Unique
{ unUnique = 6 }
, loc = ()
}
, defExpr = Let
{ exprAnn = ()
, letBinds =
( Name
{ name = "boy" :| []
, unique = Unique
{ unUnique = 8 }
, loc = ()
}
, Choice
{ exprAnn = ()
, choices =
( 0.5
, Literal
{ exprAnn = ()
, litText = "tom"
}
) :|
[
( 0.5
, Literal
{ exprAnn = ()
, litText = "harry"
}
)
]
}
) :| []
, letExpr = Apply
{ exprAnn = ()
, exprFun = Var
{ exprAnn = ()
, exprVar = Name
{ name = "greeter" :| []
, unique = Unique
{ unUnique = 5 }
, loc = ()
}
}
, exprArg = Var
{ exprAnn = ()
, exprVar = Name
{ name = "boy" :| []
, unique = Unique
{ unUnique = 8 }
, loc = ()
}
}
}
}
}
]
}