7dd951d7fd075c03c1de13721e6cfede958a26fbd09f98b4cad6640af9fad035.tri (1422B)
1 !import prelude * 2 !export * 3 4 -- Resolved gate-profile core AST. Every node retains a half-open source span. 5 -- node = pair kind (pair payload (pair start end)) 6 sourceCoreNode kind payload start end = 7 pair kind (pair payload (pair start end)) 8 sourceCoreKind node = fst node 9 sourceCorePayload node = fst (snd node) 10 sourceCoreStart node = fst (snd (snd node)) 11 sourceCoreEnd node = snd (snd (snd node)) 12 13 sourceCoreLeafKind = 1 14 sourceCoreBoundKind = 2 15 sourceCoreApplyKind = 3 16 sourceCoreLambdaKind = 4 17 sourceCoreExternalKind = 5 18 sourceCoreNumberKind = 6 19 sourceCoreStringKind = 7 20 sourceCoreListKind = 8 21 22 sourceCoreLeaf start end = sourceCoreNode sourceCoreLeafKind t start end 23 sourceCoreBound index start end = 24 sourceCoreNode sourceCoreBoundKind index start end 25 sourceCoreApply left right start end = 26 sourceCoreNode sourceCoreApplyKind (pair left right) start end 27 sourceCoreLambda body start end = 28 sourceCoreNode sourceCoreLambdaKind body start end 29 sourceCoreExternal tree start end = 30 sourceCoreNode sourceCoreExternalKind tree start end 31 sourceCoreNumber value start end = 32 sourceCoreNode sourceCoreNumberKind value start end 33 sourceCoreString value start end = 34 sourceCoreNode sourceCoreStringKind value start end 35 sourceCoreList elements start end = 36 sourceCoreNode sourceCoreListKind elements start end 37 38 sourceCoreWithSpan node start end = 39 sourceCoreNode (sourceCoreKind node) (sourceCorePayload node) start end 40