Skip to content

Instantly share code, notes, and snippets.

@chrisdone
Last active November 16, 2018 16:41
Show Gist options
  • Select an option

  • Save chrisdone/1496239bddb81f9a1146fade555e79f0 to your computer and use it in GitHub Desktop.

Select an option

Save chrisdone/1496239bddb81f9a1146fade555e79f0 to your computer and use it in GitHub Desktop.
main = print (fib 5)
fib 0 = 0
fib 1 = 1
fib n = fib (n-1) + fib (n-2)
[ [ NonRec
(Var "$main$Demo$fib")
(LamE
(Var "$_in$t")
(LamE
(Var "$_in$a")
(LamE
(Var "$_sys$$dNum")
(LamE
(Var "$_sys$$dNum")
(LamE
(Var "$_sys$$dEq")
(LetE
(Rec
[ ( Var "$_in$fib"
, LamE
(Var "$_sys$ds")
(CaseE
(AppE
(AppE
(AppE
(AppE
(VarE
(Id
"$ghc-prim$GHC.Classes$=="))
(TypE (Typ "a")))
(VarE (Id "$_sys$$dEq")))
(VarE (Id "$_sys$ds")))
(AppE
(AppE
(AppE
(VarE
(Id
"$base$GHC.Num$fromInteger"))
(TypE (Typ "a")))
(VarE (Id "$_sys$$dNum")))
(LitE (Integer 0))))
(Var "$_sys$wild")
(Typ "t")
[ Alt
{ altCon =
DataAlt
(DataCon
"ghc-prim:GHC.Types.False")
, altVars = []
, altExp =
AppE
(LamE
(Var "$_sys$ds")
(CaseE
(AppE
(AppE
(AppE
(AppE
(VarE
(Id
"$ghc-prim$GHC.Classes$=="))
(TypE (Typ "a")))
(VarE
(Id "$_sys$$dEq")))
(VarE (Id "$_sys$ds")))
(AppE
(AppE
(AppE
(VarE
(Id
"$base$GHC.Num$fromInteger"))
(TypE (Typ "a")))
(VarE
(Id
"$_sys$$dNum")))
(LitE (Integer 1))))
(Var "$_sys$wild")
(Typ "t")
[ Alt
{ altCon =
DataAlt
(DataCon
"ghc-prim:GHC.Types.False")
, altVars = []
, altExp =
AppE
(LamE
(Var "$_sys$ds")
(AppE
(AppE
(AppE
(AppE
(VarE
(Id
"$base$GHC.Num$+"))
(TypE
(Typ
"t")))
(VarE
(Id
"$_sys$$dNum")))
(AppE
(VarE
(Id
"$_in$fib"))
(AppE
(AppE
(AppE
(AppE
(VarE
(Id
"$base$GHC.Num$-"))
(TypE
(Typ
"a")))
(VarE
(Id
"$_sys$$dNum")))
(VarE
(Id
"$_sys$ds")))
(AppE
(AppE
(AppE
(VarE
(Id
"$base$GHC.Num$fromInteger"))
(TypE
(Typ
"a")))
(VarE
(Id
"$_sys$$dNum")))
(LitE
(Integer
1))))))
(AppE
(VarE
(Id
"$_in$fib"))
(AppE
(AppE
(AppE
(AppE
(VarE
(Id
"$base$GHC.Num$-"))
(TypE
(Typ
"a")))
(VarE
(Id
"$_sys$$dNum")))
(VarE
(Id
"$_sys$ds")))
(AppE
(AppE
(AppE
(VarE
(Id
"$base$GHC.Num$fromInteger"))
(TypE
(Typ
"a")))
(VarE
(Id
"$_sys$$dNum")))
(LitE
(Integer
2)))))))
(VarE
(Id
"$ghc-prim$GHC.Prim$void#"))
}
, Alt
{ altCon =
DataAlt
(DataCon
"ghc-prim:GHC.Types.True")
, altVars = []
, altExp =
AppE
(AppE
(AppE
(VarE
(Id
"$base$GHC.Num$fromInteger"))
(TypE
(Typ "t")))
(VarE
(Id
"$_sys$$dNum")))
(LitE (Integer 1))
}
]))
(VarE
(Id "$ghc-prim$GHC.Prim$void#"))
}
, Alt
{ altCon =
DataAlt
(DataCon "ghc-prim:GHC.Types.True")
, altVars = []
, altExp =
AppE
(AppE
(AppE
(VarE
(Id
"$base$GHC.Num$fromInteger"))
(TypE (Typ "t")))
(VarE (Id "$_sys$$dNum")))
(LitE (Integer 0))
}
]))
])
(VarE (Id "$_in$fib"))))))))
, NonRec
(Var "$main$Demo$main")
(AppE
(AppE
(AppE (VarE (Id "$base$System.IO$print")) (TypE (Typ "Integer")))
(VarE (Id "$base$GHC.Show$$fShowInteger")))
(AppE
(AppE
(AppE
(AppE
(AppE
(AppE
(VarE (Id "$main$Demo$fib"))
(TypE (Typ "Integer")))
(TypE (Typ "Integer")))
(VarE (Id "$base$GHC.Num$$fNumInteger")))
(VarE (Id "$base$GHC.Num$$fNumInteger")))
(VarE (Id "$integer-gmp$GHC.Integer.Type$$fEqInteger")))
(LitE (Integer 5))))
, NonRec
(Var "$main$Demo$$trModule")
(AppE
(AppE
(VarE (Id "$ghc-prim$GHC.Types$Module"))
(AppE (VarE (Id "$ghc-prim$GHC.Types$TrNameS")) (LitE (Str "main"))))
(AppE (VarE (Id "$ghc-prim$GHC.Types$TrNameS")) (LitE (Str "Demo"))))
]
]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment