-- File generated by the BNF Converter. -- Templates for pattern matching on abstract syntax {-# OPTIONS_GHC -fno-warn-unused-matches #-} module SkelAlfa where import Prelude (($), Either(..), String, (++), Show, show) import qualified AbsAlfa type Err = Either String type Result = Err String failure :: Show a => a -> Result failure x = Left $ "Undefined case: " ++ show x transComment :: AbsAlfa.Comment -> Result transComment x = case x of AbsAlfa.Comment string -> failure x transInfix :: AbsAlfa.Infix -> Result transInfix x = case x of AbsAlfa.Infix string -> failure x transPIdent :: AbsAlfa.PIdent -> Result transPIdent x = case x of AbsAlfa.PIdent string -> failure x transDecl :: AbsAlfa.Decl -> Result transDecl x = case x of AbsAlfa.DDef defAttrs def -> failure x AbsAlfa.DImp import_ -> failure x transDef :: AbsAlfa.Def -> Result transDef x = case x of AbsAlfa.Axiom aIdent typings exp -> failure x AbsAlfa.Binding aIdent exp -> failure x AbsAlfa.Commt comment -> failure x AbsAlfa.Data aIdent typings constructors -> failure x AbsAlfa.Mutual defs -> failure x AbsAlfa.Open exp openArgs -> failure x AbsAlfa.Package aIdent typings packageBody -> failure x AbsAlfa.Type aIdent typings exp -> failure x AbsAlfa.Value aIdent varDecls exp1 exp2 -> failure x transExp :: AbsAlfa.Exp -> Result transExp x = case x of AbsAlfa.EAbs varDecl arrow exp -> failure x AbsAlfa.EAbsUnt aIdents arrow exp -> failure x AbsAlfa.EApp exp1 exp2 -> failure x AbsAlfa.ECase exp branchs -> failure x AbsAlfa.EChar c -> failure x AbsAlfa.ECommL comment exp -> failure x AbsAlfa.ECommR exp comment -> failure x AbsAlfa.ECon aIdent -> failure x AbsAlfa.EConst aIdent -> failure x AbsAlfa.EDouble d -> failure x AbsAlfa.EFun exp1 arrow exp2 -> failure x AbsAlfa.EIData varDecls indConstructors -> failure x AbsAlfa.EInfix exp1 infix_ exp2 -> failure x AbsAlfa.EInt n -> failure x AbsAlfa.ELet decls exp -> failure x AbsAlfa.EMeta -> failure x AbsAlfa.EMetaN n -> failure x AbsAlfa.EMetaU -> failure x AbsAlfa.EOpen exp1 openArgs exp2 -> failure x AbsAlfa.EPi varDecl arrow exp -> failure x AbsAlfa.EProj exp aIdent -> failure x AbsAlfa.ESet -> failure x AbsAlfa.ESig fieldDecls -> failure x AbsAlfa.EStar n -> failure x AbsAlfa.EStr bindings -> failure x AbsAlfa.EString str -> failure x AbsAlfa.ESum constructors -> failure x AbsAlfa.EType -> failure x AbsAlfa.EVar aIdent -> failure x transArrow :: AbsAlfa.Arrow -> Result transArrow x = case x of AbsAlfa.AHide -> failure x AbsAlfa.AShow -> failure x transTyping :: AbsAlfa.Typing -> Result transTyping x = case x of AbsAlfa.TDecl varDecl -> failure x AbsAlfa.TExp exp -> failure x transVarDecl :: AbsAlfa.VarDecl -> Result transVarDecl x = case x of AbsAlfa.VDecl bounds exp -> failure x transBound :: AbsAlfa.Bound -> Result transBound x = case x of AbsAlfa.BHide aIdent -> failure x AbsAlfa.BVar aIdent -> failure x transFieldDecl :: AbsAlfa.FieldDecl -> Result transFieldDecl x = case x of AbsAlfa.FDecl aIdent exp -> failure x transBranch :: AbsAlfa.Branch -> Result transBranch x = case x of AbsAlfa.BranchCon aIdent aIdents exp -> failure x AbsAlfa.BranchInf aIdent1 infix_ aIdent2 exp -> failure x AbsAlfa.BranchVar aIdent exp -> failure x transConstructor :: AbsAlfa.Constructor -> Result transConstructor x = case x of AbsAlfa.Cnstr aIdent typings -> failure x transIndConstructor :: AbsAlfa.IndConstructor -> Result transIndConstructor x = case x of AbsAlfa.ICnstr aIdent typings exps -> failure x transBinding :: AbsAlfa.Binding -> Result transBinding x = case x of AbsAlfa.Bind aIdent exp -> failure x transPackageBody :: AbsAlfa.PackageBody -> Result transPackageBody x = case x of AbsAlfa.PackageDef decls -> failure x AbsAlfa.PackageInst exp -> failure x transOpenArg :: AbsAlfa.OpenArg -> Result transOpenArg x = case x of AbsAlfa.OArg defAttrs aIdent -> failure x AbsAlfa.OArgD defAttrs aIdent exp -> failure x AbsAlfa.OArgT defAttrs aIdent exp -> failure x AbsAlfa.OArgTD defAttrs aIdent exp1 exp2 -> failure x transDefAttr :: AbsAlfa.DefAttr -> Result transDefAttr x = case x of AbsAlfa.Abstract -> failure x AbsAlfa.Concrete -> failure x AbsAlfa.Private -> failure x AbsAlfa.Public -> failure x transImport :: AbsAlfa.Import -> Result transImport x = case x of AbsAlfa.Import str -> failure x transAIdent :: AbsAlfa.AIdent -> Result transAIdent x = case x of AbsAlfa.F pIdent -> failure x AbsAlfa.I infix_ -> failure x