-- File generated by the BNF Converter. -- Templates for pattern matching on abstract syntax {-# OPTIONS_GHC -fno-warn-unused-matches #-} module SkelCore where import Prelude (($), Either(..), String, (++), Show, show) import qualified AbsCore type Err = Either String type Result = Err String failure :: Show a => a -> Result failure x = Left $ "Undefined case: " ++ show x transIdent :: AbsCore.Ident -> Result transIdent x = case x of AbsCore.Ident string -> failure x transModule :: Show a => AbsCore.Module' a -> Result transModule x = case x of AbsCore.Module _ x tdefs vdefgs -> failure x transTdef :: Show a => AbsCore.Tdef' a -> Result transTdef x = case x of AbsCore.Data _ qualIdent tbinds cdefs -> failure x AbsCore.Newtype _ qualIdent tbinds maybeTy -> failure x transMaybeTy :: Show a => AbsCore.MaybeTy' a -> Result transMaybeTy x = case x of AbsCore.JustTy _ ty -> failure x AbsCore.NoTy _ -> failure x transCdef :: Show a => AbsCore.Cdef' a -> Result transCdef x = case x of AbsCore.Constr _ qualIdent aTbinds tyts -> failure x transTyt :: Show a => AbsCore.Tyt' a -> Result transTyt x = case x of AbsCore.TT _ ty -> failure x transVdefg :: Show a => AbsCore.Vdefg' a -> Result transVdefg x = case x of AbsCore.Nonrec _ vdef -> failure x AbsCore.Rec _ vdefs -> failure x transVdef :: Show a => AbsCore.Vdef' a -> Result transVdef x = case x of AbsCore.VdefQ _ qualIdent ty exp -> failure x AbsCore.VdefU _ x ty exp -> failure x transExp :: Show a => AbsCore.Exp' a -> Result transExp x = case x of AbsCore.App _ exp1 exp2 -> failure x AbsCore.Appt _ exp ty -> failure x AbsCore.Case _ exp vbind alts -> failure x AbsCore.Coerce _ ty exp -> failure x AbsCore.Dcon _ qualIdent -> failure x AbsCore.External _ str ty -> failure x AbsCore.Lams _ binds exp -> failure x AbsCore.Let _ vdefg exp -> failure x AbsCore.Litc _ lit -> failure x AbsCore.Note _ str exp -> failure x AbsCore.Var _ x -> failure x transBind :: Show a => AbsCore.Bind' a -> Result transBind x = case x of AbsCore.Tb _ tbind -> failure x AbsCore.Vb _ vbind -> failure x transAlt :: Show a => AbsCore.Alt' a -> Result transAlt x = case x of AbsCore.Acon _ qualIdent aTbinds vbinds exp -> failure x AbsCore.Adefault _ exp -> failure x AbsCore.Alit _ lit exp -> failure x transVbind :: Show a => AbsCore.Vbind' a -> Result transVbind x = case x of AbsCore.Vbind _ x ty -> failure x transTbind :: Show a => AbsCore.Tbind' a -> Result transTbind x = case x of AbsCore.TbindLift _ x -> failure x AbsCore.TbindPair _ x kind -> failure x transATbind :: Show a => AbsCore.ATbind' a -> Result transATbind x = case x of AbsCore.ATbind _ tbind -> failure x transTy :: Show a => AbsCore.Ty' a -> Result transTy x = case x of AbsCore.TArrow _ ty1 ty2 -> failure x AbsCore.Tapp _ ty1 ty2 -> failure x AbsCore.Tcon _ qualIdent -> failure x AbsCore.Tforalls _ tbinds ty -> failure x AbsCore.Tvar _ x -> failure x transKind :: Show a => AbsCore.Kind' a -> Result transKind x = case x of AbsCore.Karrow _ kind1 kind2 -> failure x AbsCore.Klifted _ -> failure x AbsCore.Kopen _ -> failure x AbsCore.Kunlifted _ -> failure x transLit :: Show a => AbsCore.Lit' a -> Result transLit x = case x of AbsCore.Lchar _ c ty -> failure x AbsCore.Lint _ n ty -> failure x AbsCore.Lrational _ d ty -> failure x AbsCore.Lstring _ str ty -> failure x transQualIdent :: Show a => AbsCore.QualIdent' a -> Result transQualIdent x = case x of AbsCore.Qual _ x1 x2 -> failure x