-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | SKI Combinator interpreter
--
-- SKI Combinator interpreter
@package combinator-interactive
@version 0.1.1
module Data.Combinator
data Expr e
(:$) :: Expr e -> Expr e -> Expr e
I :: Expr e
K :: Expr e
S :: Expr e
Var :: e -> Expr e
-- | The length function returns a length of an expression.
length :: Expr e -> Int
isPrim :: Expr e -> Bool
subst :: Eq e => e -> Expr e -> Expr e -> Expr e
-- | The bindee function transforms an expression to a combinator
-- which binds specified variable when it is applied.
bindee :: Eq e => e -> Expr e -> Expr e
apply :: Expr e -> Expr e -> Expr e
eval :: Expr e -> Expr e
unlambdaParser :: Parser (Expr String)
ccParser :: Parser (Expr String)
variable :: Parser [Char]
lambda :: Parser (Expr String)
stringLit :: Parser (Expr Void)
intLit :: Parser (Expr Void)
cc :: QuasiQuoter
showCC :: Expr String -> String
ccExpression :: Prism' String (Expr String)
churchNumeral :: Prism' (Expr a) Int
encodeInt :: Int -> Expr a
decodeInt :: Expr Void -> Maybe Int
_Combinator :: Prism' (Expr a) (Expr Void)
instance Monad Expr
instance Lift e0 => Lift (Expr e0)
instance Show e => Show (Expr e)
instance Eq e => Eq (Expr e)
instance Ord e => Ord (Expr e)
instance Functor Expr
instance Foldable Expr
instance Traversable Expr