symantic-base-0.2.0.20210731: Commonly useful symantics for Embedded Domain-Specific Languages (EDSL)
Safe HaskellNone
LanguageHaskell2010

Symantic.View

Documentation

data View a where Source #

Constructors

View :: (ViewEnv -> ShowS) -> View a 
ViewUnifix :: Unifix -> String -> String -> View (a -> b) 
ViewInfix :: Infix -> String -> String -> View (a -> b -> c) 
ViewApp :: View (b -> a) -> View b -> View a 

Instances

Instances details
LiftDerived View Source # 
Instance details

Defined in Symantic.View

Methods

liftDerived :: Derived View a -> View a Source #

Maybeable View Source # 
Instance details

Defined in Symantic.View

Methods

nothing :: View (Maybe a) Source #

just :: View (a -> Maybe a) Source #

Listable View Source # 
Instance details

Defined in Symantic.View

Methods

cons :: View (a -> [a] -> [a]) Source #

nil :: View [a] Source #

Equalable View Source # 
Instance details

Defined in Symantic.View

Methods

equal :: Eq a => View (a -> a -> Bool) Source #

Eitherable View Source # 
Instance details

Defined in Symantic.View

Methods

left :: View (l -> Either l r) Source #

right :: View (r -> Either l r) Source #

Bottomable View Source # 
Instance details

Defined in Symantic.View

Methods

bottom :: View a Source #

Anythingable View Source # 
Instance details

Defined in Symantic.View

Methods

anything :: View a -> View a Source #

Abstractable View Source # 
Instance details

Defined in Symantic.View

Methods

(.@) :: View (a -> b) -> View a -> View b Source #

lam :: (View a -> View b) -> View (a -> b) Source #

lam1 :: (View a -> View b) -> View (a -> b) Source #

const :: View (a -> b -> a) Source #

flip :: View ((a -> b -> c) -> b -> a -> c) Source #

id :: View (a -> a) Source #

(.) :: View ((b -> c) -> (a -> b) -> a -> c) Source #

($) :: View ((a -> b) -> a -> b) Source #

var :: View a -> View a Source #

Show c => Constantable c View Source # 
Instance details

Defined in Symantic.View

Methods

constant :: c -> View c Source #

Show (View a) Source # 
Instance details

Defined in Symantic.View

Methods

showsPrec :: Int -> View a -> ShowS #

show :: View a -> String #

showList :: [View a] -> ShowS #

IsString (View a) Source # 
Instance details

Defined in Symantic.View

Methods

fromString :: String -> View a #

Show (SomeData View a) Source # 
Instance details

Defined in Symantic.View

type Derived View Source #

Unusual, but enables to leverage default definition of methods.

Instance details

Defined in Symantic.View

viewLam :: String -> (View a -> View b) -> View (a -> b) Source #