module Symantic
- ( module Symantic.CurryN
+ ( module Symantic.Class
+ , module Symantic.CurryN
, module Symantic.Data
, module Symantic.Derive
- , module Symantic.Lang
, module Symantic.ObserveSharing
, module Symantic.Optimize
, module Symantic.Reify
, module Symantic.View
) where
+import Symantic.Class
import Symantic.CurryN
import Symantic.Data
import Symantic.Derive
-import Symantic.Lang
import Symantic.ObserveSharing
import Symantic.Optimize
import Symantic.Reify
{-# LANGUAGE PatternSynonyms #-} -- For (:!:)
{-# LANGUAGE TypeFamilyDependencies #-} -- For Permutation
{-# LANGUAGE UndecidableInstances #-} -- For Permutation
-module Symantic.Lang where
+module Symantic.Class where
import Data.Bool (Bool(..))
import Data.Char (Char)
import qualified Data.Function as Fun
import qualified Data.Maybe as Maybe
-import Symantic.Lang
+import Symantic.Class
import Symantic.Derive
-- * Type 'SomeData'
import Data.Bool (Bool)
import qualified Data.Function as Fun
-import Symantic.Lang
+import Symantic.Class
import Symantic.Data
-- | Beta-reduce the left-most outer-most lambda abstraction (aka. normal-order reduction),
import qualified Data.Function as Fun
import qualified Language.Haskell.TH as TH
-import Symantic.Lang (Abstractable(..))
+import Symantic.Class (Abstractable(..))
-- | 'ReifyReflect' witnesses the duality between @meta@ and @(repr a)@.
-- It indicates which type variables in @a@ are not to be instantiated
import qualified Data.Function as Fun
import qualified Prelude
-import Symantic.Fixity
-import Symantic.Lang
+import Symantic.Class
import Symantic.Data
import Symantic.Derive
+import Symantic.Fixity
data View a where
View :: (ViewEnv -> ShowS) -> View a
This is a work-in-progress collection of basic tagless-final combinators,
along with some advanced utilities to exploit them.
- * @Symantic.Lang@
+ * @Symantic.Class@
gathers commonly used tagless-final combinators
(the syntax part of symantics).
* @Symantic.Data@ is an interpreter enabling to pattern-match on combinators,
exposed-modules:
Symantic
Symantic.ADT
+ Symantic.Class
Symantic.CurryN
Symantic.Data
Symantic.Derive
Symantic.Fixity
- Symantic.Lang
Symantic.ObserveSharing
Symantic.Optimize
Symantic.Reify