-- File generated by the BNF Converter. -- Templates for pattern matching on abstract syntax {-# LANGUAGE GADTs #-} {-# OPTIONS_GHC -fno-warn-unused-matches #-} module SkelCubicaltt where import Prelude (($), Either(..), String, (++), Show, show) import qualified AbsCubicaltt type Err = Either String type Result = Err String failure :: Show a => a -> Result failure x = Left $ "Undefined case: " ++ show x transTree :: AbsCubicaltt.Tree c -> Result transTree t = case t of AbsCubicaltt.Module aIdent imps decls -> failure t AbsCubicaltt.Import aIdent -> failure t AbsCubicaltt.DeclData aIdent teles labels -> failure t AbsCubicaltt.DeclDef aIdent teles exp expWhere -> failure t AbsCubicaltt.DeclHData aIdent teles labels -> failure t AbsCubicaltt.DeclMutual decls -> failure t AbsCubicaltt.DeclOpaque aIdent -> failure t AbsCubicaltt.DeclSplit aIdent teles exp branchs -> failure t AbsCubicaltt.DeclTransparent aIdent -> failure t AbsCubicaltt.DeclTransparentAll -> failure t AbsCubicaltt.DeclUndef aIdent teles exp -> failure t AbsCubicaltt.NoWhere exp -> failure t AbsCubicaltt.Where exp decls -> failure t AbsCubicaltt.App exp1 exp2 -> failure t AbsCubicaltt.AppFormula exp formula -> failure t AbsCubicaltt.Comp exp1 exp2 system -> failure t AbsCubicaltt.Fill exp1 exp2 system -> failure t AbsCubicaltt.Fst exp -> failure t AbsCubicaltt.Fun exp1 exp2 -> failure t AbsCubicaltt.Glue exp system -> failure t AbsCubicaltt.GlueElem exp system -> failure t AbsCubicaltt.HComp exp1 exp2 system -> failure t AbsCubicaltt.Hole holeIdent -> failure t AbsCubicaltt.Id exp1 exp2 exp3 -> failure t AbsCubicaltt.IdJ exp1 exp2 exp3 exp4 exp5 exp6 -> failure t AbsCubicaltt.IdPair exp system -> failure t AbsCubicaltt.Lam pTeles exp -> failure t AbsCubicaltt.Let decls exp -> failure t AbsCubicaltt.PCon aIdent exp -> failure t AbsCubicaltt.PLam aIdents exp -> failure t AbsCubicaltt.Pair exp exps -> failure t AbsCubicaltt.PathP exp1 exp2 exp3 -> failure t AbsCubicaltt.Pi pTeles exp -> failure t AbsCubicaltt.Sigma pTeles exp -> failure t AbsCubicaltt.Snd exp -> failure t AbsCubicaltt.Split exp branchs -> failure t AbsCubicaltt.Trans exp1 exp2 -> failure t AbsCubicaltt.U -> failure t AbsCubicaltt.UnGlueElem exp system -> failure t AbsCubicaltt.Var aIdent -> failure t AbsCubicaltt.Dir0 -> failure t AbsCubicaltt.Dir1 -> failure t AbsCubicaltt.System sides -> failure t AbsCubicaltt.Face aIdent dir -> failure t AbsCubicaltt.Side faces exp -> failure t AbsCubicaltt.Atom aIdent -> failure t AbsCubicaltt.Conj formula1 cIdent formula2 -> failure t AbsCubicaltt.Dir dir -> failure t AbsCubicaltt.Disj formula1 formula2 -> failure t AbsCubicaltt.Neg formula -> failure t AbsCubicaltt.OBranch aIdent aIdents expWhere -> failure t AbsCubicaltt.PBranch aIdent aIdents1 aIdents2 expWhere -> failure t AbsCubicaltt.OLabel aIdent teles -> failure t AbsCubicaltt.PLabel aIdent teles aIdents system -> failure t AbsCubicaltt.Tele aIdent aIdents exp -> failure t AbsCubicaltt.PTele exp1 exp2 -> failure t transAIdent :: AbsCubicaltt.AIdent -> Result transAIdent x = case x of AbsCubicaltt.AIdent string -> failure x transCIdent :: AbsCubicaltt.CIdent -> Result transCIdent x = case x of AbsCubicaltt.CIdent string -> failure x transHoleIdent :: AbsCubicaltt.HoleIdent -> Result transHoleIdent x = case x of AbsCubicaltt.HoleIdent string -> failure x transModule :: AbsCubicaltt.Module -> Result transModule x = case x of AbsCubicaltt.Module aIdent imps decls -> failure x transImp :: AbsCubicaltt.Imp -> Result transImp x = case x of AbsCubicaltt.Import aIdent -> failure x transDecl :: AbsCubicaltt.Decl -> Result transDecl x = case x of AbsCubicaltt.DeclData aIdent teles labels -> failure x AbsCubicaltt.DeclDef aIdent teles exp expWhere -> failure x AbsCubicaltt.DeclHData aIdent teles labels -> failure x AbsCubicaltt.DeclMutual decls -> failure x AbsCubicaltt.DeclOpaque aIdent -> failure x AbsCubicaltt.DeclSplit aIdent teles exp branchs -> failure x AbsCubicaltt.DeclTransparent aIdent -> failure x AbsCubicaltt.DeclTransparentAll -> failure x AbsCubicaltt.DeclUndef aIdent teles exp -> failure x transExpWhere :: AbsCubicaltt.ExpWhere -> Result transExpWhere x = case x of AbsCubicaltt.NoWhere exp -> failure x AbsCubicaltt.Where exp decls -> failure x transExp :: AbsCubicaltt.Exp -> Result transExp x = case x of AbsCubicaltt.App exp1 exp2 -> failure x AbsCubicaltt.AppFormula exp formula -> failure x AbsCubicaltt.Comp exp1 exp2 system -> failure x AbsCubicaltt.Fill exp1 exp2 system -> failure x AbsCubicaltt.Fst exp -> failure x AbsCubicaltt.Fun exp1 exp2 -> failure x AbsCubicaltt.Glue exp system -> failure x AbsCubicaltt.GlueElem exp system -> failure x AbsCubicaltt.HComp exp1 exp2 system -> failure x AbsCubicaltt.Hole holeIdent -> failure x AbsCubicaltt.Id exp1 exp2 exp3 -> failure x AbsCubicaltt.IdJ exp1 exp2 exp3 exp4 exp5 exp6 -> failure x AbsCubicaltt.IdPair exp system -> failure x AbsCubicaltt.Lam pTeles exp -> failure x AbsCubicaltt.Let decls exp -> failure x AbsCubicaltt.PCon aIdent exp -> failure x AbsCubicaltt.PLam aIdents exp -> failure x AbsCubicaltt.Pair exp exps -> failure x AbsCubicaltt.PathP exp1 exp2 exp3 -> failure x AbsCubicaltt.Pi pTeles exp -> failure x AbsCubicaltt.Sigma pTeles exp -> failure x AbsCubicaltt.Snd exp -> failure x AbsCubicaltt.Split exp branchs -> failure x AbsCubicaltt.Trans exp1 exp2 -> failure x AbsCubicaltt.U -> failure x AbsCubicaltt.UnGlueElem exp system -> failure x AbsCubicaltt.Var aIdent -> failure x transDir :: AbsCubicaltt.Dir -> Result transDir x = case x of AbsCubicaltt.Dir0 -> failure x AbsCubicaltt.Dir1 -> failure x transSystem :: AbsCubicaltt.System -> Result transSystem x = case x of AbsCubicaltt.System sides -> failure x transFace :: AbsCubicaltt.Face -> Result transFace x = case x of AbsCubicaltt.Face aIdent dir -> failure x transSide :: AbsCubicaltt.Side -> Result transSide x = case x of AbsCubicaltt.Side faces exp -> failure x transFormula :: AbsCubicaltt.Formula -> Result transFormula x = case x of AbsCubicaltt.Atom aIdent -> failure x AbsCubicaltt.Conj formula1 cIdent formula2 -> failure x AbsCubicaltt.Dir dir -> failure x AbsCubicaltt.Disj formula1 formula2 -> failure x AbsCubicaltt.Neg formula -> failure x transBranch :: AbsCubicaltt.Branch -> Result transBranch x = case x of AbsCubicaltt.OBranch aIdent aIdents expWhere -> failure x AbsCubicaltt.PBranch aIdent aIdents1 aIdents2 expWhere -> failure x transLabel :: AbsCubicaltt.Label -> Result transLabel x = case x of AbsCubicaltt.OLabel aIdent teles -> failure x AbsCubicaltt.PLabel aIdent teles aIdents system -> failure x transTele :: AbsCubicaltt.Tele -> Result transTele x = case x of AbsCubicaltt.Tele aIdent aIdents exp -> failure x transPTele :: AbsCubicaltt.PTele -> Result transPTele x = case x of AbsCubicaltt.PTele exp1 exp2 -> failure x