Skip to content

Instantly share code, notes, and snippets.

@wz1000
Last active May 20, 2018 06:36
Show Gist options
  • Save wz1000/84edd9fded9c91a6822f6696d96968e7 to your computer and use it in GitHub Desktop.
Save wz1000/84edd9fded9c91a6822f6696d96968e7 to your computer and use it in GitHub Desktop.
main :: IO ()
main = print $ fib 41 where
fib :: Int -> Int
fib 0 = 0
fib 1 = 1
fib n = fib (n-1) + fib (n-2)
Node {nodeInfo = ["Module"], nodeSpan = SrcSpanPoint "" 1 1, nodeChildren =
[Leaf (HieToken {htkInfo = TkIdentifier, htkSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 1 1 5, htkDetails = Nothing, htkType = Nothing})
,Leaf (HieToken {htkInfo = TkSpace, htkSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 1 5 6 , htkDetails = Nothing, htkType = Nothing})
,Leaf (HieToken {htkInfo = TkGlyph, htkSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 1 6 8, htkDetails = Nothing, htkType = Nothing})
,Leaf (HieToken {htkInfo = TkSpace, htkSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 1 8 9, htkDetails = Nothing, htkType = Nothing})
,Leaf (HieToken {htkInfo = TkIdentifier, htkSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 1 9 11, htkDetails = Nothing, htkType = Nothing})
,Leaf (HieToken {htkInfo = TkSpace, htkSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 1 11 12, htkDetails = Nothing, htkType = Nothing})
,Leaf (HieToken {htkInfo = TkSpecial, htkSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 1 12 13, htkDetails = Nothing, htkType = Nothing})
,Leaf (HieToken {htkInfo = TkSpecial, htkSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 1 13 14, htkDetails = Nothing, htkType = Nothing})
,Leaf (HieToken {htkInfo = TkSpace, htkSpan = SrcSpanMultiLine "/home/zubin/Documents/Haskell/Fib.hs" 1 14 2 1, htkDetails = Nothing, htkType = Nothing})
,Node {nodeInfo = ["FunBind","HsBindLR"], nodeSpan = SrcSpanMultiLine "/home/zubin/Documents/Haskell/Fib.hs" 2 1 6 33, nodeChildren =
[Node {nodeInfo = ["Alts","MatchGroup"], nodeSpan = SrcSpanMultiLine "/home/zubin/Documents/Haskell/Fib.hs" 2 1 6 33, nodeChildren =
[Node {nodeInfo = ["Match","Match"], nodeSpan = SrcSpanMultiLine "/home/zubin/Documents/Haskell/Fib.hs" 2 1 6 33, nodeChildren =
[Leaf (HieToken {htkInfo = TkIdentifier, htkSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 2 1 5, htkDetails = Just (RtkDecl $main$Main$main), htkType = Nothing})
,Leaf (HieToken {htkInfo = TkSpace, htkSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 2 5 6, htkDetails = Nothing, htkType = Nothing})
,Node {nodeInfo = ["GRHS","GRHS"], nodeSpan = SrcSpanMultiLine "/home/zubin/Documents/Haskell/Fib.hs" 2 6 6 33, nodeChildren =
[Leaf (HieToken {htkInfo = TkGlyph, htkSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 2 6 7, htkDetails = Nothing, htkType = Nothing})
,Leaf (HieToken {htkInfo = TkSpace, htkSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 2 7 8, htkDetails = Nothing, htkType = Nothing})
,Node {nodeInfo = ["OpApp","HsExpr"], nodeSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 2 8 22, nodeChildren =
[Node {nodeInfo = ["HsVar","HsExpr"], nodeSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 2 8 13, nodeChildren =
[Leaf (HieToken {htkInfo = TkIdentifier, htkSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 2 8 13, htkDetails = Just (RtkVar $base$System.IO$print), htkType = Nothing})]}
,Leaf (HieToken {htkInfo = TkSpace, htkSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 2 13 14, htkDetails = Nothing, htkType = Nothing})
,Node {nodeInfo = ["HsVar","HsExpr"], nodeSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 2 14 15, nodeChildren =
[Leaf (HieToken {htkInfo = TkOperator, htkSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 2 14 15, htkDetails = Just (RtkVar $base$GHC.Base$$), htkType = Nothing})]}
,Leaf (HieToken {htkInfo = TkSpace, htkSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 2 15 16, htkDetails = Nothing, htkType = Nothing})
,Node {nodeInfo = ["HsApp","HsExpr"], nodeSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 2 16 22, nodeChildren =
[Node {nodeInfo = ["HsVar","HsExpr"], nodeSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 2 16 19, nodeChildren =
[Leaf (HieToken {htkInfo = TkIdentifier, htkSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 2 16 19, htkDetails = Just (RtkVar $_in$fib), htkType = Nothing})]}
,Leaf (HieToken {htkInfo = TkSpace, htkSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 2 19 20, htkDetails = Nothing, htkType = Nothing})
,Leaf (HieToken {htkInfo = TkNumber, htkSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 2 20 22, htkDetails = Nothing, htkType = Nothing})]}]}
,Leaf (HieToken {htkInfo = TkSpace, htkSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 2 22 23, htkDetails = Nothing, htkType = Nothing})
,Leaf (HieToken {htkInfo = TkKeyword, htkSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 2 23 28, htkDetails = Nothing, htkType = Nothing})
,Leaf (HieToken {htkInfo = TkSpace, htkSpan = SrcSpanMultiLine "/home/zubin/Documents/Haskell/Fib.hs" 2 28 3 3, htkDetails = Nothing, htkType = Nothing})
,Node {nodeInfo = ["HsValBinds","HsLocalBindsLR"], nodeSpan = SrcSpanMultiLine "/home/zubin/Documents/Haskell/Fib.hs" 3 3 6 33, nodeChildren =
[Leaf (HieToken {htkInfo = TkIdentifier, htkSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 3 3 6, htkDetails = Nothing, htkType = Nothing})
,Leaf (HieToken {htkInfo = TkSpace, htkSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 3 6 7, htkDetails = Nothing, htkType = Nothing})
,Leaf (HieToken {htkInfo = TkGlyph, htkSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 3 7 9, htkDetails = Nothing, htkType = Nothing})
,Leaf (HieToken {htkInfo = TkSpace, htkSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 3 9 10, htkDetails = Nothing, htkType = Nothing})
,Leaf (HieToken {htkInfo = TkIdentifier, htkSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 3 10 13, htkDetails = Nothing, htkType = Nothing})
,Leaf (HieToken {htkInfo = TkSpace, htkSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 3 13 14, htkDetails = Nothing, htkType = Nothing})
,Leaf (HieToken {htkInfo = TkGlyph, htkSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 3 14 16, htkDetails = Nothing, htkType = Nothing})
,Leaf (HieToken {htkInfo = TkSpace, htkSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 3 16 17, htkDetails = Nothing, htkType = Nothing})
,Leaf (HieToken {htkInfo = TkIdentifier, htkSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 3 17 20, htkDetails = Nothing, htkType = Nothing})
,Leaf (HieToken {htkInfo = TkSpace, htkSpan = SrcSpanMultiLine "/home/zubin/Documents/Haskell/Fib.hs" 3 20 4 3, htkDetails = Nothing, htkType = Nothing})
,Node {nodeInfo = ["FunBind","HsBindLR"], nodeSpan = SrcSpanMultiLine "/home/zubin/Documents/Haskell/Fib.hs" 4 3 6 33, nodeChildren =
[Node {nodeInfo = ["Alts","MatchGroup"], nodeSpan = SrcSpanMultiLine "/home/zubin/Documents/Haskell/Fib.hs" 4 3 6 33, nodeChildren =
[Node {nodeInfo = ["Match","Match"], nodeSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 4 3 12, nodeChildren =
[Leaf (HieToken {htkInfo = TkIdentifier, htkSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 4 3 6, htkDetails = Just (RtkBind $_in$fib), htkType = Nothing})
,Leaf (HieToken {htkInfo = TkSpace, htkSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 4 6 7, htkDetails = Nothing, htkType = Nothing})
,Node {nodeInfo = ["NPat","Pat"], nodeSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 4 7 8, nodeChildren =
[Leaf (HieToken {htkInfo = TkNumber, htkSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 4 7 8, htkDetails = Nothing, htkType = Nothing})]}
,Leaf (HieToken {htkInfo = TkSpace, htkSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 4 8 9, htkDetails = Nothing, htkType = Nothing})
,Node {nodeInfo = ["GRHS","GRHS"], nodeSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 4 9 12, nodeChildren =
[Leaf (HieToken {htkInfo = TkGlyph, htkSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 4 9 10, htkDetails = Nothing, htkType = Nothing})
,Leaf (HieToken {htkInfo = TkSpace, htkSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 4 10 11, htkDetails = Nothing, htkType = Nothing})
,Leaf (HieToken {htkInfo = TkNumber, htkSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 4 11 12, htkDetails = Nothing, htkType = Nothing})]}]}
,Leaf (HieToken {htkInfo = TkSpace, htkSpan = SrcSpanMultiLine "/home/zubin/Documents/Haskell/Fib.hs" 4 12 5 3, htkDetails = Nothing, htkType = Nothing})
,Node {nodeInfo = ["Match","Match"], nodeSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 5 3 12, nodeChildren =
[Leaf (HieToken {htkInfo = TkIdentifier, htkSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 5 3 6, htkDetails = Nothing, htkType = Nothing})
,Leaf (HieToken {htkInfo = TkSpace, htkSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 5 6 7, htkDetails = Nothing, htkType = Nothing})
,Node {nodeInfo = ["NPat","Pat"], nodeSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 5 7 8, nodeChildren =
[Leaf (HieToken {htkInfo = TkNumber, htkSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 5 7 8 , htkDetails = Nothing, htkType = Nothing})]}
,Leaf (HieToken {htkInfo = TkSpace, htkSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 5 8 9, htkDetails = Nothing, htkType = Nothing})
,Node {nodeInfo = ["GRHS","GRHS"], nodeSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 5 9 12, nodeChildren =
[Leaf (HieToken {htkInfo = TkGlyph, htkSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 5 9 10, htkDetails = Nothing, htkType = Nothing})
,Leaf (HieToken {htkInfo = TkSpace, htkSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 5 10 11, htkDetails = Nothing, htkType = Nothing})
,Leaf (HieToken {htkInfo = TkNumber, htkSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 5 11 12, htkDetails = Nothing, htkType = Nothing})]}]}
,Leaf (HieToken {htkInfo = TkSpace, htkSpan = SrcSpanMultiLine "/home/zubin/Documents/Haskell/Fib.hs" 5 12 6 3, htkDetails = Nothing, htkType = Nothing})
,Node {nodeInfo = ["Match","Match"], nodeSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 6 3 33, nodeChildren =
[Leaf (HieToken {htkInfo = TkIdentifier, htkSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 6 3 6, htkDetails = Nothing, htkType = Nothing})
,Leaf (HieToken {htkInfo = TkSpace, htkSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 6 6 7, htkDetails = Nothing, htkType = Nothing})
,Node {nodeInfo = ["VarPat","Pat"], nodeSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 6 7 8, nodeChildren =
[Leaf (HieToken {htkInfo = TkIdentifier, htkSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 6 7 8, htkDetails = Just (RtkBind $_in$n), htkType = Nothing})]}
,Leaf (HieToken {htkInfo = TkSpace, htkSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 6 8 9, htkDetails = Nothing, htkType = Nothing})
,Node {nodeInfo = ["GRHS","GRHS"], nodeSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 6 9 33, nodeChildren =
[Leaf (HieToken {htkInfo = TkGlyph, htkSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 6 9 10, htkDetails = Nothing, htkType = Nothing})
,Leaf (HieToken {htkInfo = TkSpace, htkSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 6 10 11, htkDetails = Nothing, htkType = Nothing})
,Node {nodeInfo = ["OpApp","HsExpr"], nodeSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 6 11 33, nodeChildren =
[Node {nodeInfo = ["HsApp","HsExpr"], nodeSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 6 11 20, nodeChildren =
[Node {nodeInfo = ["HsVar","HsExpr"], nodeSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 6 11 14, nodeChildren =
[Leaf (HieToken {htkInfo = TkIdentifier, htkSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 6 11 14, htkDetails = Just (RtkVar $_in$fib), htkType = Nothing})]}
,Leaf (HieToken {htkInfo = TkSpace, htkSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 6 14 15, htkDetails = Nothing, htkType = Nothing})
,Node {nodeInfo = ["HsPar","HsExpr"], nodeSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 6 15 20, nodeChildren =
[Leaf (HieToken {htkInfo = TkSpecial, htkSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 6 15 16, htkDetails = Nothing, htkType = Nothing})
,Node {nodeInfo = ["OpApp","HsExpr"], nodeSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 6 16 19, nodeChildren =
[Node {nodeInfo = ["HsVar","HsExpr"], nodeSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 6 16 17, nodeChildren =
[Leaf (HieToken {htkInfo = TkIdentifier, htkSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 6 16 17, htkDetails = Just (RtkVar $_in$n), htkType = Nothing})]}
,Node {nodeInfo = ["HsVar","HsExpr"], nodeSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 6 17 18, nodeChildren =
[Leaf (HieToken {htkInfo = TkGlyph, htkSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 6 17 18, htkDetails = Just (RtkVar $base$GHC.Num$-), htkType = Nothing})]}
,Leaf (HieToken {htkInfo = TkNumber, htkSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 6 18 19, htkDetails = Nothing, htkType = Nothing})]}
,Leaf (HieToken {htkInfo = TkSpecial, htkSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 6 19 20, htkDetails = Nothing, htkType = Nothing})]}]}
,Leaf (HieToken {htkInfo = TkSpace, htkSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 6 20 21, htkDetails = Nothing, htkType = Nothing})
,Node {nodeInfo = ["HsVar","HsExpr"], nodeSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 6 21 22, nodeChildren =
[Leaf (HieToken {htkInfo = TkOperator, htkSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 6 21 22, htkDetails = Just (RtkVar $base$GHC.Num$+), htkType = Nothing})]}
,Leaf (HieToken {htkInfo = TkSpace, htkSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 6 22 24, htkDetails = Nothing, htkType = Nothing})
,Node {nodeInfo = ["HsApp","HsExpr"], nodeSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 6 24 33, nodeChildren =
[Node {nodeInfo = ["HsVar","HsExpr"], nodeSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 6 24 27, nodeChildren =
[Leaf (HieToken {htkInfo = TkIdentifier, htkSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 6 24 27, htkDetails = Just (RtkVar $_in$fib), htkType = Nothing})]}
,Leaf (HieToken {htkInfo = TkSpace, htkSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 6 27 28, htkDetails = Nothing, htkType = Nothing})
,Node {nodeInfo = ["HsPar","HsExpr"], nodeSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 6 28 33, nodeChildren =
[Leaf (HieToken {htkInfo = TkSpecial, htkSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 6 28 29, htkDetails = Nothing, htkType = Nothing})
,Node {nodeInfo = ["OpApp","HsExpr"], nodeSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 6 29 32, nodeChildren =
[Node {nodeInfo = ["HsVar","HsExpr"], nodeSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 6 29 30, nodeChildren =
[Leaf (HieToken {htkInfo = TkIdentifier, htkSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 6 29 30, htkDetails = Just (RtkVar $_in$n), htkType = Nothing})]}
,Node {nodeInfo = ["HsVar","HsExpr"], nodeSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 6 30 31, nodeChildren =
[Leaf (HieToken {htkInfo = TkGlyph, htkSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 6 30 31, htkDetails = Just (RtkVar $base$GHC.Num$-), htkType = Nothing})]}
,Leaf (HieToken {htkInfo = TkNumber, htkSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 6 31 32, htkDetails = Nothing, htkType = Nothing})]}
,Leaf (HieToken {htkInfo = TkSpecial, htkSpan = SrcSpanOneLine "/home/zubin/Documents/Haskell/Fib.hs" 6 32 33, htkDetails = Nothing, htkType = Nothing})]}]}]}]}]}]}]}]}]}]}]}]}]}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment