-- File generated by the BNF Converter. -- Parser definition for use with Happy. { {-# OPTIONS_GHC -fno-warn-incomplete-patterns -fno-warn-overlapping-patterns #-} {-# LANGUAGE PatternSynonyms #-} module ParCubicaltt ( happyError , myLexer , pModule , pImp , pListImp , pDecl , pListDecl , pExpWhere , pExp , pExp1 , pExp2 , pExp3 , pExp4 , pExp5 , pListExp , pDir , pSystem , pFace , pListFace , pSide , pListSide , pFormula , pFormula1 , pFormula2 , pBranch , pListBranch , pLabel , pListLabel , pTele , pListTele , pPTele , pListPTele , pListAIdent ) where import Prelude import qualified AbsCubicaltt import LexCubicaltt } %name pModule_internal Module %name pImp_internal Imp %name pListImp_internal ListImp %name pDecl_internal Decl %name pListDecl_internal ListDecl %name pExpWhere_internal ExpWhere %name pExp_internal Exp %name pExp1_internal Exp1 %name pExp2_internal Exp2 %name pExp3_internal Exp3 %name pExp4_internal Exp4 %name pExp5_internal Exp5 %name pListExp_internal ListExp %name pDir_internal Dir %name pSystem_internal System %name pFace_internal Face %name pListFace_internal ListFace %name pSide_internal Side %name pListSide_internal ListSide %name pFormula_internal Formula %name pFormula1_internal Formula1 %name pFormula2_internal Formula2 %name pBranch_internal Branch %name pListBranch_internal ListBranch %name pLabel_internal Label %name pListLabel_internal ListLabel %name pTele_internal Tele %name pListTele_internal ListTele %name pPTele_internal PTele %name pListPTele_internal ListPTele %name pListAIdent_internal ListAIdent %monad { Err } { (>>=) } { return } %tokentype {Token} %token '(' { PT _ (TS _ 1) } ')' { PT _ (TS _ 2) } '*' { PT _ (TS _ 3) } ',' { PT _ (TS _ 4) } '-' { PT _ (TS _ 5) } '->' { PT _ (TS _ 6) } '.1' { PT _ (TS _ 7) } '.2' { PT _ (TS _ 8) } '0' { PT _ (TS _ 9) } '1' { PT _ (TS _ 10) } ':' { PT _ (TS _ 11) } ';' { PT _ (TS _ 12) } '<' { PT _ (TS _ 13) } '=' { PT _ (TS _ 14) } '>' { PT _ (TS _ 15) } '@' { PT _ (TS _ 16) } 'Glue' { PT _ (TS _ 17) } 'Id' { PT _ (TS _ 18) } 'PathP' { PT _ (TS _ 19) } 'U' { PT _ (TS _ 20) } '[' { PT _ (TS _ 21) } '\\' { PT _ (TS _ 22) } '\\/' { PT _ (TS _ 23) } ']' { PT _ (TS _ 24) } 'comp' { PT _ (TS _ 25) } 'data' { PT _ (TS _ 26) } 'fill' { PT _ (TS _ 27) } 'glue' { PT _ (TS _ 28) } 'hComp' { PT _ (TS _ 29) } 'hdata' { PT _ (TS _ 30) } 'idC' { PT _ (TS _ 31) } 'idJ' { PT _ (TS _ 32) } 'import' { PT _ (TS _ 33) } 'in' { PT _ (TS _ 34) } 'let' { PT _ (TS _ 35) } 'module' { PT _ (TS _ 36) } 'mutual' { PT _ (TS _ 37) } 'opaque' { PT _ (TS _ 38) } 'split' { PT _ (TS _ 39) } 'split@' { PT _ (TS _ 40) } 'transparent' { PT _ (TS _ 41) } 'transparent_all' { PT _ (TS _ 42) } 'transport' { PT _ (TS _ 43) } 'undefined' { PT _ (TS _ 44) } 'unglue' { PT _ (TS _ 45) } 'where' { PT _ (TS _ 46) } 'with' { PT _ (TS _ 47) } '{' { PT _ (TS _ 48) } '|' { PT _ (TS _ 49) } '}' { PT _ (TS _ 50) } L_AIdent { PT _ (T_AIdent _) } L_CIdent { PT _ (T_CIdent _) } L_HoleIdent { PT _ (T_HoleIdent _) } %% AIdent :: { (AbsCubicaltt.BNFC'Position, AbsCubicaltt.AIdent) } AIdent : L_AIdent { (uncurry AbsCubicaltt.BNFC'Position (tokenLineCol $1), AbsCubicaltt.AIdent (mkPosToken $1)) } CIdent :: { (AbsCubicaltt.BNFC'Position, AbsCubicaltt.CIdent) } CIdent : L_CIdent { (uncurry AbsCubicaltt.BNFC'Position (tokenLineCol $1), AbsCubicaltt.CIdent (tokenText $1)) } HoleIdent :: { (AbsCubicaltt.BNFC'Position, AbsCubicaltt.HoleIdent) } HoleIdent : L_HoleIdent { (uncurry AbsCubicaltt.BNFC'Position (tokenLineCol $1), AbsCubicaltt.HoleIdent (mkPosToken $1)) } Module :: { (AbsCubicaltt.BNFC'Position, AbsCubicaltt.Module) } Module : 'module' AIdent 'where' '{' ListImp ListDecl '}' { (uncurry AbsCubicaltt.BNFC'Position (tokenLineCol $1), AbsCubicaltt.Module (uncurry AbsCubicaltt.BNFC'Position (tokenLineCol $1)) (snd $2) (snd $5) (snd $6)) } Imp :: { (AbsCubicaltt.BNFC'Position, AbsCubicaltt.Imp) } Imp : 'import' AIdent { (uncurry AbsCubicaltt.BNFC'Position (tokenLineCol $1), AbsCubicaltt.Import (uncurry AbsCubicaltt.BNFC'Position (tokenLineCol $1)) (snd $2)) } ListImp :: { (AbsCubicaltt.BNFC'Position, [AbsCubicaltt.Imp]) } ListImp : {- empty -} { (AbsCubicaltt.BNFC'NoPosition, []) } | Imp { (fst $1, (:[]) (snd $1)) } | Imp ';' ListImp { (fst $1, (:) (snd $1) (snd $3)) } Decl :: { (AbsCubicaltt.BNFC'Position, AbsCubicaltt.Decl) } Decl : 'data' AIdent ListTele '=' ListLabel { (uncurry AbsCubicaltt.BNFC'Position (tokenLineCol $1), AbsCubicaltt.DeclData (uncurry AbsCubicaltt.BNFC'Position (tokenLineCol $1)) (snd $2) (snd $3) (snd $5)) } | 'hdata' AIdent ListTele '=' ListLabel { (uncurry AbsCubicaltt.BNFC'Position (tokenLineCol $1), AbsCubicaltt.DeclHData (uncurry AbsCubicaltt.BNFC'Position (tokenLineCol $1)) (snd $2) (snd $3) (snd $5)) } | 'mutual' '{' ListDecl '}' { (uncurry AbsCubicaltt.BNFC'Position (tokenLineCol $1), AbsCubicaltt.DeclMutual (uncurry AbsCubicaltt.BNFC'Position (tokenLineCol $1)) (snd $3)) } | 'opaque' AIdent { (uncurry AbsCubicaltt.BNFC'Position (tokenLineCol $1), AbsCubicaltt.DeclOpaque (uncurry AbsCubicaltt.BNFC'Position (tokenLineCol $1)) (snd $2)) } | 'transparent' AIdent { (uncurry AbsCubicaltt.BNFC'Position (tokenLineCol $1), AbsCubicaltt.DeclTransparent (uncurry AbsCubicaltt.BNFC'Position (tokenLineCol $1)) (snd $2)) } | 'transparent_all' { (uncurry AbsCubicaltt.BNFC'Position (tokenLineCol $1), AbsCubicaltt.DeclTransparentAll (uncurry AbsCubicaltt.BNFC'Position (tokenLineCol $1))) } | AIdent ListTele ':' Exp '=' 'split' '{' ListBranch '}' { (fst $1, AbsCubicaltt.DeclSplit (fst $1) (snd $1) (snd $2) (snd $4) (snd $8)) } | AIdent ListTele ':' Exp '=' 'undefined' { (fst $1, AbsCubicaltt.DeclUndef (fst $1) (snd $1) (snd $2) (snd $4)) } | AIdent ListTele ':' Exp '=' ExpWhere { (fst $1, AbsCubicaltt.DeclDef (fst $1) (snd $1) (snd $2) (snd $4) (snd $6)) } ListDecl :: { (AbsCubicaltt.BNFC'Position, [AbsCubicaltt.Decl]) } ListDecl : {- empty -} { (AbsCubicaltt.BNFC'NoPosition, []) } | Decl { (fst $1, (:[]) (snd $1)) } | Decl ';' ListDecl { (fst $1, (:) (snd $1) (snd $3)) } ExpWhere :: { (AbsCubicaltt.BNFC'Position, AbsCubicaltt.ExpWhere) } ExpWhere : Exp { (fst $1, AbsCubicaltt.NoWhere (fst $1) (snd $1)) } | Exp 'where' '{' ListDecl '}' { (fst $1, AbsCubicaltt.Where (fst $1) (snd $1) (snd $4)) } Exp :: { (AbsCubicaltt.BNFC'Position, AbsCubicaltt.Exp) } Exp : '<' ListAIdent '>' Exp { (uncurry AbsCubicaltt.BNFC'Position (tokenLineCol $1), AbsCubicaltt.PLam (uncurry AbsCubicaltt.BNFC'Position (tokenLineCol $1)) (snd $2) (snd $4)) } | '\\' ListPTele '->' Exp { (uncurry AbsCubicaltt.BNFC'Position (tokenLineCol $1), AbsCubicaltt.Lam (uncurry AbsCubicaltt.BNFC'Position (tokenLineCol $1)) (snd $2) (snd $4)) } | 'let' '{' ListDecl '}' 'in' Exp { (uncurry AbsCubicaltt.BNFC'Position (tokenLineCol $1), AbsCubicaltt.Let (uncurry AbsCubicaltt.BNFC'Position (tokenLineCol $1)) (snd $3) (snd $6)) } | 'split@' Exp 'with' '{' ListBranch '}' { (uncurry AbsCubicaltt.BNFC'Position (tokenLineCol $1), AbsCubicaltt.Split (uncurry AbsCubicaltt.BNFC'Position (tokenLineCol $1)) (snd $2) (snd $5)) } | Exp1 { (fst $1, (snd $1)) } Exp1 :: { (AbsCubicaltt.BNFC'Position, AbsCubicaltt.Exp) } Exp1 : ListPTele '*' Exp1 { (fst $1, AbsCubicaltt.Sigma (fst $1) (snd $1) (snd $3)) } | ListPTele '->' Exp1 { (fst $1, AbsCubicaltt.Pi (fst $1) (snd $1) (snd $3)) } | Exp2 { (fst $1, (snd $1)) } | Exp2 '->' Exp1 { (fst $1, AbsCubicaltt.Fun (fst $1) (snd $1) (snd $3)) } Exp2 :: { (AbsCubicaltt.BNFC'Position, AbsCubicaltt.Exp) } Exp2 : Exp2 '@' Formula { (fst $1, AbsCubicaltt.AppFormula (fst $1) (snd $1) (snd $3)) } | Exp2 Exp3 { (fst $1, AbsCubicaltt.App (fst $1) (snd $1) (snd $2)) } | Exp3 { (fst $1, (snd $1)) } Exp3 :: { (AbsCubicaltt.BNFC'Position, AbsCubicaltt.Exp) } Exp3 : 'Glue' Exp4 System { (uncurry AbsCubicaltt.BNFC'Position (tokenLineCol $1), AbsCubicaltt.Glue (uncurry AbsCubicaltt.BNFC'Position (tokenLineCol $1)) (snd $2) (snd $3)) } | 'Id' Exp4 Exp4 Exp3 { (uncurry AbsCubicaltt.BNFC'Position (tokenLineCol $1), AbsCubicaltt.Id (uncurry AbsCubicaltt.BNFC'Position (tokenLineCol $1)) (snd $2) (snd $3) (snd $4)) } | 'PathP' Exp4 Exp4 Exp4 { (uncurry AbsCubicaltt.BNFC'Position (tokenLineCol $1), AbsCubicaltt.PathP (uncurry AbsCubicaltt.BNFC'Position (tokenLineCol $1)) (snd $2) (snd $3) (snd $4)) } | 'comp' Exp4 Exp4 System { (uncurry AbsCubicaltt.BNFC'Position (tokenLineCol $1), AbsCubicaltt.Comp (uncurry AbsCubicaltt.BNFC'Position (tokenLineCol $1)) (snd $2) (snd $3) (snd $4)) } | 'fill' Exp4 Exp4 System { (uncurry AbsCubicaltt.BNFC'Position (tokenLineCol $1), AbsCubicaltt.Fill (uncurry AbsCubicaltt.BNFC'Position (tokenLineCol $1)) (snd $2) (snd $3) (snd $4)) } | 'glue' Exp4 System { (uncurry AbsCubicaltt.BNFC'Position (tokenLineCol $1), AbsCubicaltt.GlueElem (uncurry AbsCubicaltt.BNFC'Position (tokenLineCol $1)) (snd $2) (snd $3)) } | 'hComp' Exp4 Exp4 System { (uncurry AbsCubicaltt.BNFC'Position (tokenLineCol $1), AbsCubicaltt.HComp (uncurry AbsCubicaltt.BNFC'Position (tokenLineCol $1)) (snd $2) (snd $3) (snd $4)) } | 'idC' Exp4 System { (uncurry AbsCubicaltt.BNFC'Position (tokenLineCol $1), AbsCubicaltt.IdPair (uncurry AbsCubicaltt.BNFC'Position (tokenLineCol $1)) (snd $2) (snd $3)) } | 'idJ' Exp4 Exp4 Exp4 Exp4 Exp4 Exp4 { (uncurry AbsCubicaltt.BNFC'Position (tokenLineCol $1), AbsCubicaltt.IdJ (uncurry AbsCubicaltt.BNFC'Position (tokenLineCol $1)) (snd $2) (snd $3) (snd $4) (snd $5) (snd $6) (snd $7)) } | 'transport' Exp4 Exp4 { (uncurry AbsCubicaltt.BNFC'Position (tokenLineCol $1), AbsCubicaltt.Trans (uncurry AbsCubicaltt.BNFC'Position (tokenLineCol $1)) (snd $2) (snd $3)) } | 'unglue' Exp4 System { (uncurry AbsCubicaltt.BNFC'Position (tokenLineCol $1), AbsCubicaltt.UnGlueElem (uncurry AbsCubicaltt.BNFC'Position (tokenLineCol $1)) (snd $2) (snd $3)) } | Exp4 { (fst $1, (snd $1)) } Exp4 :: { (AbsCubicaltt.BNFC'Position, AbsCubicaltt.Exp) } Exp4 : Exp4 '.1' { (fst $1, AbsCubicaltt.Fst (fst $1) (snd $1)) } | Exp4 '.2' { (fst $1, AbsCubicaltt.Snd (fst $1) (snd $1)) } | Exp5 { (fst $1, (snd $1)) } Exp5 :: { (AbsCubicaltt.BNFC'Position, AbsCubicaltt.Exp) } Exp5 : '(' Exp ')' { (uncurry AbsCubicaltt.BNFC'Position (tokenLineCol $1), (snd $2)) } | '(' Exp ',' ListExp ')' { (uncurry AbsCubicaltt.BNFC'Position (tokenLineCol $1), AbsCubicaltt.Pair (uncurry AbsCubicaltt.BNFC'Position (tokenLineCol $1)) (snd $2) (snd $4)) } | 'U' { (uncurry AbsCubicaltt.BNFC'Position (tokenLineCol $1), AbsCubicaltt.U (uncurry AbsCubicaltt.BNFC'Position (tokenLineCol $1))) } | AIdent { (fst $1, AbsCubicaltt.Var (fst $1) (snd $1)) } | AIdent '{' Exp '}' { (fst $1, AbsCubicaltt.PCon (fst $1) (snd $1) (snd $3)) } | HoleIdent { (fst $1, AbsCubicaltt.Hole (fst $1) (snd $1)) } ListExp :: { (AbsCubicaltt.BNFC'Position, [AbsCubicaltt.Exp]) } ListExp : Exp { (fst $1, (:[]) (snd $1)) } | Exp ',' ListExp { (fst $1, (:) (snd $1) (snd $3)) } Dir :: { (AbsCubicaltt.BNFC'Position, AbsCubicaltt.Dir) } Dir : '0' { (uncurry AbsCubicaltt.BNFC'Position (tokenLineCol $1), AbsCubicaltt.Dir0 (uncurry AbsCubicaltt.BNFC'Position (tokenLineCol $1))) } | '1' { (uncurry AbsCubicaltt.BNFC'Position (tokenLineCol $1), AbsCubicaltt.Dir1 (uncurry AbsCubicaltt.BNFC'Position (tokenLineCol $1))) } System :: { (AbsCubicaltt.BNFC'Position, AbsCubicaltt.System) } System : '[' ListSide ']' { (uncurry AbsCubicaltt.BNFC'Position (tokenLineCol $1), AbsCubicaltt.System (uncurry AbsCubicaltt.BNFC'Position (tokenLineCol $1)) (snd $2)) } Face :: { (AbsCubicaltt.BNFC'Position, AbsCubicaltt.Face) } Face : '(' AIdent '=' Dir ')' { (uncurry AbsCubicaltt.BNFC'Position (tokenLineCol $1), AbsCubicaltt.Face (uncurry AbsCubicaltt.BNFC'Position (tokenLineCol $1)) (snd $2) (snd $4)) } ListFace :: { (AbsCubicaltt.BNFC'Position, [AbsCubicaltt.Face]) } ListFace : {- empty -} { (AbsCubicaltt.BNFC'NoPosition, []) } | Face ListFace { (fst $1, (:) (snd $1) (snd $2)) } Side :: { (AbsCubicaltt.BNFC'Position, AbsCubicaltt.Side) } Side : ListFace '->' Exp { (fst $1, AbsCubicaltt.Side (fst $1) (snd $1) (snd $3)) } ListSide :: { (AbsCubicaltt.BNFC'Position, [AbsCubicaltt.Side]) } ListSide : {- empty -} { (AbsCubicaltt.BNFC'NoPosition, []) } | Side { (fst $1, (:[]) (snd $1)) } | Side ',' ListSide { (fst $1, (:) (snd $1) (snd $3)) } Formula :: { (AbsCubicaltt.BNFC'Position, AbsCubicaltt.Formula) } Formula : Formula '\\/' Formula1 { (fst $1, AbsCubicaltt.Disj (fst $1) (snd $1) (snd $3)) } | Formula1 { (fst $1, (snd $1)) } Formula1 :: { (AbsCubicaltt.BNFC'Position, AbsCubicaltt.Formula) } Formula1 : Formula1 CIdent Formula2 { (fst $1, AbsCubicaltt.Conj (fst $1) (snd $1) (snd $2) (snd $3)) } | Formula2 { (fst $1, (snd $1)) } Formula2 :: { (AbsCubicaltt.BNFC'Position, AbsCubicaltt.Formula) } Formula2 : '(' Formula ')' { (uncurry AbsCubicaltt.BNFC'Position (tokenLineCol $1), (snd $2)) } | '-' Formula2 { (uncurry AbsCubicaltt.BNFC'Position (tokenLineCol $1), AbsCubicaltt.Neg (uncurry AbsCubicaltt.BNFC'Position (tokenLineCol $1)) (snd $2)) } | AIdent { (fst $1, AbsCubicaltt.Atom (fst $1) (snd $1)) } | Dir { (fst $1, AbsCubicaltt.Dir (fst $1) (snd $1)) } Branch :: { (AbsCubicaltt.BNFC'Position, AbsCubicaltt.Branch) } Branch : AIdent ListAIdent '->' ExpWhere { (fst $1, AbsCubicaltt.OBranch (fst $1) (snd $1) (snd $2) (snd $4)) } | AIdent ListAIdent '@' ListAIdent '->' ExpWhere { (fst $1, AbsCubicaltt.PBranch (fst $1) (snd $1) (snd $2) (snd $4) (snd $6)) } ListBranch :: { (AbsCubicaltt.BNFC'Position, [AbsCubicaltt.Branch]) } ListBranch : {- empty -} { (AbsCubicaltt.BNFC'NoPosition, []) } | Branch { (fst $1, (:[]) (snd $1)) } | Branch ';' ListBranch { (fst $1, (:) (snd $1) (snd $3)) } Label :: { (AbsCubicaltt.BNFC'Position, AbsCubicaltt.Label) } Label : AIdent ListTele { (fst $1, AbsCubicaltt.OLabel (fst $1) (snd $1) (snd $2)) } | AIdent ListTele '<' ListAIdent '>' System { (fst $1, AbsCubicaltt.PLabel (fst $1) (snd $1) (snd $2) (snd $4) (snd $6)) } ListLabel :: { (AbsCubicaltt.BNFC'Position, [AbsCubicaltt.Label]) } ListLabel : {- empty -} { (AbsCubicaltt.BNFC'NoPosition, []) } | Label { (fst $1, (:[]) (snd $1)) } | Label '|' ListLabel { (fst $1, (:) (snd $1) (snd $3)) } Tele :: { (AbsCubicaltt.BNFC'Position, AbsCubicaltt.Tele) } Tele : '(' AIdent ListAIdent ':' Exp ')' { (uncurry AbsCubicaltt.BNFC'Position (tokenLineCol $1), AbsCubicaltt.Tele (uncurry AbsCubicaltt.BNFC'Position (tokenLineCol $1)) (snd $2) (snd $3) (snd $5)) } ListTele :: { (AbsCubicaltt.BNFC'Position, [AbsCubicaltt.Tele]) } ListTele : {- empty -} { (AbsCubicaltt.BNFC'NoPosition, []) } | Tele ListTele { (fst $1, (:) (snd $1) (snd $2)) } PTele :: { (AbsCubicaltt.BNFC'Position, AbsCubicaltt.PTele) } PTele : '(' Exp ':' Exp ')' { (uncurry AbsCubicaltt.BNFC'Position (tokenLineCol $1), AbsCubicaltt.PTele (uncurry AbsCubicaltt.BNFC'Position (tokenLineCol $1)) (snd $2) (snd $4)) } ListPTele :: { (AbsCubicaltt.BNFC'Position, [AbsCubicaltt.PTele]) } ListPTele : PTele { (fst $1, (:[]) (snd $1)) } | PTele ListPTele { (fst $1, (:) (snd $1) (snd $2)) } ListAIdent :: { (AbsCubicaltt.BNFC'Position, [AbsCubicaltt.AIdent]) } ListAIdent : {- empty -} { (AbsCubicaltt.BNFC'NoPosition, []) } | AIdent ListAIdent { (fst $1, (:) (snd $1) (snd $2)) } { type Err = Either String happyError :: [Token] -> Err a happyError ts = Left $ "syntax error at " ++ tokenPos ts ++ case ts of [] -> [] [Err _] -> " due to lexer error" t:_ -> " before `" ++ (prToken t) ++ "'" myLexer :: String -> [Token] myLexer = tokens -- Entrypoints pModule :: [Token] -> Err AbsCubicaltt.Module pModule = fmap snd . pModule_internal pImp :: [Token] -> Err AbsCubicaltt.Imp pImp = fmap snd . pImp_internal pListImp :: [Token] -> Err [AbsCubicaltt.Imp] pListImp = fmap snd . pListImp_internal pDecl :: [Token] -> Err AbsCubicaltt.Decl pDecl = fmap snd . pDecl_internal pListDecl :: [Token] -> Err [AbsCubicaltt.Decl] pListDecl = fmap snd . pListDecl_internal pExpWhere :: [Token] -> Err AbsCubicaltt.ExpWhere pExpWhere = fmap snd . pExpWhere_internal pExp :: [Token] -> Err AbsCubicaltt.Exp pExp = fmap snd . pExp_internal pExp1 :: [Token] -> Err AbsCubicaltt.Exp pExp1 = fmap snd . pExp1_internal pExp2 :: [Token] -> Err AbsCubicaltt.Exp pExp2 = fmap snd . pExp2_internal pExp3 :: [Token] -> Err AbsCubicaltt.Exp pExp3 = fmap snd . pExp3_internal pExp4 :: [Token] -> Err AbsCubicaltt.Exp pExp4 = fmap snd . pExp4_internal pExp5 :: [Token] -> Err AbsCubicaltt.Exp pExp5 = fmap snd . pExp5_internal pListExp :: [Token] -> Err [AbsCubicaltt.Exp] pListExp = fmap snd . pListExp_internal pDir :: [Token] -> Err AbsCubicaltt.Dir pDir = fmap snd . pDir_internal pSystem :: [Token] -> Err AbsCubicaltt.System pSystem = fmap snd . pSystem_internal pFace :: [Token] -> Err AbsCubicaltt.Face pFace = fmap snd . pFace_internal pListFace :: [Token] -> Err [AbsCubicaltt.Face] pListFace = fmap snd . pListFace_internal pSide :: [Token] -> Err AbsCubicaltt.Side pSide = fmap snd . pSide_internal pListSide :: [Token] -> Err [AbsCubicaltt.Side] pListSide = fmap snd . pListSide_internal pFormula :: [Token] -> Err AbsCubicaltt.Formula pFormula = fmap snd . pFormula_internal pFormula1 :: [Token] -> Err AbsCubicaltt.Formula pFormula1 = fmap snd . pFormula1_internal pFormula2 :: [Token] -> Err AbsCubicaltt.Formula pFormula2 = fmap snd . pFormula2_internal pBranch :: [Token] -> Err AbsCubicaltt.Branch pBranch = fmap snd . pBranch_internal pListBranch :: [Token] -> Err [AbsCubicaltt.Branch] pListBranch = fmap snd . pListBranch_internal pLabel :: [Token] -> Err AbsCubicaltt.Label pLabel = fmap snd . pLabel_internal pListLabel :: [Token] -> Err [AbsCubicaltt.Label] pListLabel = fmap snd . pListLabel_internal pTele :: [Token] -> Err AbsCubicaltt.Tele pTele = fmap snd . pTele_internal pListTele :: [Token] -> Err [AbsCubicaltt.Tele] pListTele = fmap snd . pListTele_internal pPTele :: [Token] -> Err AbsCubicaltt.PTele pPTele = fmap snd . pPTele_internal pListPTele :: [Token] -> Err [AbsCubicaltt.PTele] pListPTele = fmap snd . pListPTele_internal pListAIdent :: [Token] -> Err [AbsCubicaltt.AIdent] pListAIdent = fmap snd . pListAIdent_internal }