{-

doctest -DDOCTEST SzInfer.hs



 -}

{-# LANGUAGE CPP #-}

{-# LANGUAGE TemplateHaskell #-}

{-# LANGUAGE FlexibleInstances #-}

{-# LANGUAGE DeriveFunctor #-}
{-# LANGUAGE DeriveFoldable #-}
{-# LANGUAGE DeriveTraversable #-}

{-# LANGUAGE StandaloneDeriving #-}



-- -- {-# OPTIONS_GHC -Wno-name-shadowing #-}
-- -- {-# OPTIONS_GHC -Wno-unused-matches #-}
-- -- {-# OPTIONS_GHC -fno-warn-orphans #-}


module OldTerm where


import Control.Lens



import OldSyntax



#ifdef DOCTEST
#endif


{-|

-}




{-- snippet term --}
data Term t a
  = Ide a
  | T t
  | E   (Expr t a)
  | D  (Decl t a)
  | M  (Module t a)
  | Mat  (Match t a)
  | Pat  (Pattern t)
  | Tel  (Telescope t a)
  | CDef  (ConstructorDef t a)
  | ARG  (Arg t a)
  deriving (Functor, Foldable, Traversable, Eq, Ord, Show)
{-- /snippet term --}


makePrisms ''Term





instance Show (Term t a -> Term t a) where
  show _ = "Term... -> Term..."