code-conjure-0.3.2: conjure Haskell functions out of partial definitions
Copyright(c) 2021 Rudy Matela
License3-Clause BSD (see the file LICENSE)
MaintainerRudy Matela <rudy@matela.com.br>
Safe HaskellNone
LanguageHaskell2010

Conjure.Constructors

Description

This module is part of Conjure.

This module defines the Constructors typeclass that allows listing constructors of a type encoded as Exprs

You are probably better off importing Conjure.

Documentation

class Express a => Constructors a where Source #

Methods

expr1 :: a -> Expr Source #

constructors :: a -> [Expr] Source #

Instances

Instances details
Constructors Bool Source # 
Instance details

Defined in Conjure.Constructors

Constructors Char Source # 
Instance details

Defined in Conjure.Constructors

Constructors Int Source # 
Instance details

Defined in Conjure.Constructors

Constructors Integer Source # 
Instance details

Defined in Conjure.Constructors

Constructors () Source # 
Instance details

Defined in Conjure.Constructors

Methods

expr1 :: () -> Expr Source #

constructors :: () -> [Expr] Source #

Express a => Constructors [a] Source # 
Instance details

Defined in Conjure.Constructors

Methods

expr1 :: [a] -> Expr Source #

constructors :: [a] -> [Expr] Source #

Express a => Constructors (Maybe a) Source # 
Instance details

Defined in Conjure.Constructors

Methods

expr1 :: Maybe a -> Expr Source #

constructors :: Maybe a -> [Expr] Source #

(Express a, Express b) => Constructors (Either a b) Source # 
Instance details

Defined in Conjure.Constructors

Methods

expr1 :: Either a b -> Expr Source #

constructors :: Either a b -> [Expr] Source #

(Express a, Express b) => Constructors (a, b) Source # 
Instance details

Defined in Conjure.Constructors

Methods

expr1 :: (a, b) -> Expr Source #

constructors :: (a, b) -> [Expr] Source #

(Express a, Express b, Express c) => Constructors (a, b, c) Source # 
Instance details

Defined in Conjure.Constructors

Methods

expr1 :: (a, b, c) -> Expr Source #

constructors :: (a, b, c) -> [Expr] Source #

type Fxpr = [([Expr], Expr)] Source #

class Typeable a => Fxpress a where Source #

Minimal complete definition

Nothing

Methods

fvl :: Fxpr -> a Source #

Instances

Instances details
Fxpress Bool Source # 
Instance details

Defined in Conjure.Constructors

Methods

fvl :: Fxpr -> Bool Source #

Fxpress Char Source # 
Instance details

Defined in Conjure.Constructors

Methods

fvl :: Fxpr -> Char Source #

Fxpress Int Source # 
Instance details

Defined in Conjure.Constructors

Methods

fvl :: Fxpr -> Int Source #

Fxpress () Source # 
Instance details

Defined in Conjure.Constructors

Methods

fvl :: Fxpr -> () Source #

Fxpress a => Fxpress [a] Source # 
Instance details

Defined in Conjure.Constructors

Methods

fvl :: Fxpr -> [a] Source #

Fxpress a => Fxpress (Maybe a) Source # 
Instance details

Defined in Conjure.Constructors

Methods

fvl :: Fxpr -> Maybe a Source #

(Constructors a, Fxpress b) => Fxpress (a -> b) Source # 
Instance details

Defined in Conjure.Constructors

Methods

fvl :: Fxpr -> a -> b Source #

(Fxpress a, Fxpress b) => Fxpress (Either a b) Source # 
Instance details

Defined in Conjure.Constructors

Methods

fvl :: Fxpr -> Either a b Source #