-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | SKI Combinator interpreter -- -- SKI Combinator interpreter @package combinator-interactive @version 0.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