-- 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 :: Show a => AbsAlfa.Decl' a -> Result transDecl x = case x of AbsAlfa.DDef _ defAttrs def -> failure x AbsAlfa.DImp _ import_ -> failure x transDef :: Show a => AbsAlfa.Def' a -> 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 :: Show a => AbsAlfa.Exp' a -> 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 :: Show a => AbsAlfa.Arrow' a -> Result transArrow x = case x of AbsAlfa.AHide _ -> failure x AbsAlfa.AShow _ -> failure x transTyping :: Show a => AbsAlfa.Typing' a -> Result transTyping x = case x of AbsAlfa.TDecl _ varDecl -> failure x AbsAlfa.TExp _ exp -> failure x transVarDecl :: Show a => AbsAlfa.VarDecl' a -> Result transVarDecl x = case x of AbsAlfa.VDecl _ bounds exp -> failure x transBound :: Show a => AbsAlfa.Bound' a -> Result transBound x = case x of AbsAlfa.BHide _ aIdent -> failure x AbsAlfa.BVar _ aIdent -> failure x transFieldDecl :: Show a => AbsAlfa.FieldDecl' a -> Result transFieldDecl x = case x of AbsAlfa.FDecl _ aIdent exp -> failure x transBranch :: Show a => AbsAlfa.Branch' a -> 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 :: Show a => AbsAlfa.Constructor' a -> Result transConstructor x = case x of AbsAlfa.Cnstr _ aIdent typings -> failure x transIndConstructor :: Show a => AbsAlfa.IndConstructor' a -> Result transIndConstructor x = case x of AbsAlfa.ICnstr _ aIdent typings exps -> failure x transBinding :: Show a => AbsAlfa.Binding' a -> Result transBinding x = case x of AbsAlfa.Bind _ aIdent exp -> failure x transPackageBody :: Show a => AbsAlfa.PackageBody' a -> Result transPackageBody x = case x of AbsAlfa.PackageDef _ decls -> failure x AbsAlfa.PackageInst _ exp -> failure x transOpenArg :: Show a => AbsAlfa.OpenArg' a -> 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 :: Show a => AbsAlfa.DefAttr' a -> Result transDefAttr x = case x of AbsAlfa.Abstract _ -> failure x AbsAlfa.Concrete _ -> failure x AbsAlfa.Private _ -> failure x AbsAlfa.Public _ -> failure x transImport :: Show a => AbsAlfa.Import' a -> Result transImport x = case x of AbsAlfa.Import _ str -> failure x transAIdent :: Show a => AbsAlfa.AIdent' a -> Result transAIdent x = case x of AbsAlfa.F _ pIdent -> failure x AbsAlfa.I _ infix_ -> failure x