morley-1.16.1: Developer tools for the Michelson Language
Safe HaskellNone
LanguageHaskell2010

Morley.Util.Named

Description

Additional functionality for named package.

Synopsis

Documentation

(!) :: WithParam p fn fn' => fn -> Param p -> fn' infixl 9 #

Supply a parameter to a function:

function ! #param_name value
function ! #x 7 ! #y 42 ! defaults

This is an infix version of with.

type (:!) (name :: Symbol) a = NamedF Identity a name #

Infix notation for the type of a named parameter.

type (:?) (name :: Symbol) a = NamedF Maybe a name #

Infix notation for the type of an optional named parameter.

(<:!>) :: Functor m => Name name -> m a -> m (NamedF Identity a name) infixl 4 Source #

Special version of 'Morley.Util.Named.(:!)' for monadic operations

(<:?>) :: Functor m => Name name -> m (Maybe a) -> m (NamedF Maybe a name) infixl 4 Source #

Special version of 'Morley.Util.Named.(:?)' for monadic operations

type family ApplyNamedFunctor (f :: Type -> Type) (a :: Type) where ... Source #

type family NamedInner (n :: Type) where ... Source #

Equations

NamedInner (NamedF f a _) = ApplyNamedFunctor f a 

class KnownNamedFunctor f where Source #

Methods

namedL :: Label name -> Iso' (NamedF f a name) (ApplyNamedFunctor f a) Source #

Isomorphism between named entity and the entity itself.

Instances

Instances details
KnownNamedFunctor Maybe Source # 
Instance details

Defined in Morley.Util.Named

Methods

namedL :: forall (name :: Symbol) a. Label name -> Iso' (NamedF Maybe a name) (ApplyNamedFunctor Maybe a) Source #

KnownNamedFunctor Identity Source # 
Instance details

Defined in Morley.Util.Named

Methods

namedL :: forall (name :: Symbol) a. Label name -> Iso' (NamedF Identity a name) (ApplyNamedFunctor Identity a) Source #

newtype NamedF (f :: Type -> Type) a (name :: Symbol) #

Assign a name to a value of type a wrapped in f.

#verbose True :: NamedF Identity Bool "verbose"

Constructors

ArgF (f a)

Match on an F-argument without specifying its name. See also: argF.

Bundled Patterns

pattern (:!) :: Name name -> a -> NamedF Identity a name

Convenience pattern synonym, use this instead of arg with ViewPatterns.

pattern (:?) :: Name name -> Maybe a -> NamedF Maybe a name

Convenience pattern synonym, use this instead of argF with ViewPatterns.

pattern N :: a -> NamedF Identity a name

Convenience pattern synonym, use this instead of arg with ViewPatterns when the name can be inferred.

pattern M :: Maybe a -> NamedF Maybe a name

Convenience pattern synonym for NamedF Maybe name a, use this instead of argF with ViewPatterns when the name can be inferred.

pattern SomeArg :: a -> NamedF Maybe a name

Convenience pattern synonym, use this instead of argF with ViewPatterns when the name can be inferred. Matches only on Just values

pattern NoArg :: NamedF Maybe a name

Convenience pattern synonym, use this instead of argF with ViewPatterns when the name can be inferred. Matches only on Nothing values

pattern Arg :: a -> name :! a

Match on an argument without specifying its name. See also: arg.

Instances

Instances details
(name ~ name', a ~ a', InjValue f) => IsLabel name (a -> NamedF f a' name') 
Instance details

Defined in Named.Internal

Methods

fromLabel :: a -> NamedF f a' name' #

Eq (f a) => Eq (NamedF f a name) Source # 
Instance details

Defined in Morley.Util.Named

Methods

(==) :: NamedF f a name -> NamedF f a name -> Bool #

(/=) :: NamedF f a name -> NamedF f a name -> Bool #

(Typeable f, Typeable a, KnownSymbol name, Data (f a)) => Data (NamedF f a name) Source # 
Instance details

Defined in Morley.Util.Named

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> NamedF f a name -> c (NamedF f a name) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (NamedF f a name) #

toConstr :: NamedF f a name -> Constr #

dataTypeOf :: NamedF f a name -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (NamedF f a name)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (NamedF f a name)) #

gmapT :: (forall b. Data b => b -> b) -> NamedF f a name -> NamedF f a name #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> NamedF f a name -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> NamedF f a name -> r #

gmapQ :: (forall d. Data d => d -> u) -> NamedF f a name -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> NamedF f a name -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> NamedF f a name -> m (NamedF f a name) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> NamedF f a name -> m (NamedF f a name) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> NamedF f a name -> m (NamedF f a name) #

Ord (f a) => Ord (NamedF f a name) Source # 
Instance details

Defined in Morley.Util.Named

Methods

compare :: NamedF f a name -> NamedF f a name -> Ordering #

(<) :: NamedF f a name -> NamedF f a name -> Bool #

(<=) :: NamedF f a name -> NamedF f a name -> Bool #

(>) :: NamedF f a name -> NamedF f a name -> Bool #

(>=) :: NamedF f a name -> NamedF f a name -> Bool #

max :: NamedF f a name -> NamedF f a name -> NamedF f a name #

min :: NamedF f a name -> NamedF f a name -> NamedF f a name #

(Show a, KnownSymbol name) => Show (NamedF Identity a name) Source # 
Instance details

Defined in Morley.Util.Named

Methods

showsPrec :: Int -> NamedF Identity a name -> ShowS #

show :: NamedF Identity a name -> String #

showList :: [NamedF Identity a name] -> ShowS #

ToJSON a => ToJSON (NamedF Maybe a name) Source # 
Instance details

Defined in Morley.Util.Named

Methods

toJSON :: NamedF Maybe a name -> Value #

toEncoding :: NamedF Maybe a name -> Encoding #

toJSONList :: [NamedF Maybe a name] -> Value #

toEncodingList :: [NamedF Maybe a name] -> Encoding #

ToJSON a => ToJSON (NamedF Identity a name) Source # 
Instance details

Defined in Morley.Util.Named

FromJSON a => FromJSON (NamedF Maybe a name) Source # 
Instance details

Defined in Morley.Util.Named

Methods

parseJSON :: Value -> Parser (NamedF Maybe a name) #

parseJSONList :: Value -> Parser [NamedF Maybe a name] #

FromJSON a => FromJSON (NamedF Identity a name) Source # 
Instance details

Defined in Morley.Util.Named

NFData (f a) => NFData (NamedF f a name) Source # 
Instance details

Defined in Morley.Util.Named

Methods

rnf :: NamedF f a name -> () #

(KnownSymbol name, Buildable (f a)) => Buildable (NamedF f a name) Source # 
Instance details

Defined in Morley.Util.Named

Methods

build :: NamedF f a name -> Builder #

IsoValue a => IsoValue (NamedF Maybe a name) Source # 
Instance details

Defined in Morley.Michelson.Typed.Haskell.Value

Associated Types

type ToT (NamedF Maybe a name) :: T Source #

Methods

toVal :: NamedF Maybe a name -> Value (ToT (NamedF Maybe a name)) Source #

fromVal :: Value (ToT (NamedF Maybe a name)) -> NamedF Maybe a name Source #

IsoValue a => IsoValue (NamedF Identity a name) Source # 
Instance details

Defined in Morley.Michelson.Typed.Haskell.Value

Associated Types

type ToT (NamedF Identity a name) :: T Source #

Methods

toVal :: NamedF Identity a name -> Value (ToT (NamedF Identity a name)) Source #

fromVal :: Value (ToT (NamedF Identity a name)) -> NamedF Identity a name Source #

(TypeHasDoc (ApplyNamedFunctor f a), KnownSymbol n, KnownIsoT (ApplyNamedFunctor f Integer), Typeable f, Typeable a) => TypeHasDoc (NamedF f a n) Source # 
Instance details

Defined in Morley.Michelson.Typed.Haskell.Doc

Associated Types

type TypeDocFieldDescriptions (NamedF f a n) :: FieldDescriptions Source #

type ToT (NamedF Maybe a name) Source # 
Instance details

Defined in Morley.Michelson.Typed.Haskell.Value

type ToT (NamedF Maybe a name) = ToT (Maybe a)
type ToT (NamedF Identity a name) Source # 
Instance details

Defined in Morley.Michelson.Typed.Haskell.Value

type ToT (NamedF Identity a name) = ToT (Identity a)
type TypeDocFieldDescriptions (NamedF f a n) Source # 
Instance details

Defined in Morley.Michelson.Typed.Haskell.Doc

type TypeDocFieldDescriptions (NamedF f a n) = '[] :: [(Symbol, (Maybe Symbol, [(Symbol, Symbol)]))]

data Name (name :: Symbol) #

A proxy for a name, intended for use with -XOverloadedLabels:

#verbose :: Name "verbose"

Constructors

Name 

Instances

Instances details
name ~ name' => IsLabel name' (Name name) 
Instance details

Defined in Named.Internal

Methods

fromLabel :: Name name #

argDef :: forall (name :: Symbol) a. Name name -> a -> (name :? a) -> a #

A variation of arg for optional arguments. Requires a default value to handle the case when the optional argument was omitted:

fn (argDef #answer 42 -> ans) = ...

In case you want to get a value wrapped in Maybe instead, use argF or ArgF.

Orphan instances

Eq (f a) => Eq (NamedF f a name) Source # 
Instance details

Methods

(==) :: NamedF f a name -> NamedF f a name -> Bool #

(/=) :: NamedF f a name -> NamedF f a name -> Bool #

(Typeable f, Typeable a, KnownSymbol name, Data (f a)) => Data (NamedF f a name) Source # 
Instance details

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> NamedF f a name -> c (NamedF f a name) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (NamedF f a name) #

toConstr :: NamedF f a name -> Constr #

dataTypeOf :: NamedF f a name -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (NamedF f a name)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (NamedF f a name)) #

gmapT :: (forall b. Data b => b -> b) -> NamedF f a name -> NamedF f a name #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> NamedF f a name -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> NamedF f a name -> r #

gmapQ :: (forall d. Data d => d -> u) -> NamedF f a name -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> NamedF f a name -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> NamedF f a name -> m (NamedF f a name) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> NamedF f a name -> m (NamedF f a name) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> NamedF f a name -> m (NamedF f a name) #

Ord (f a) => Ord (NamedF f a name) Source # 
Instance details

Methods

compare :: NamedF f a name -> NamedF f a name -> Ordering #

(<) :: NamedF f a name -> NamedF f a name -> Bool #

(<=) :: NamedF f a name -> NamedF f a name -> Bool #

(>) :: NamedF f a name -> NamedF f a name -> Bool #

(>=) :: NamedF f a name -> NamedF f a name -> Bool #

max :: NamedF f a name -> NamedF f a name -> NamedF f a name #

min :: NamedF f a name -> NamedF f a name -> NamedF f a name #

(Show a, KnownSymbol name) => Show (NamedF Identity a name) Source # 
Instance details

Methods

showsPrec :: Int -> NamedF Identity a name -> ShowS #

show :: NamedF Identity a name -> String #

showList :: [NamedF Identity a name] -> ShowS #

ToJSON a => ToJSON (NamedF Maybe a name) Source # 
Instance details

Methods

toJSON :: NamedF Maybe a name -> Value #

toEncoding :: NamedF Maybe a name -> Encoding #

toJSONList :: [NamedF Maybe a name] -> Value #

toEncodingList :: [NamedF Maybe a name] -> Encoding #

ToJSON a => ToJSON (NamedF Identity a name) Source # 
Instance details

FromJSON a => FromJSON (NamedF Maybe a name) Source # 
Instance details

Methods

parseJSON :: Value -> Parser (NamedF Maybe a name) #

parseJSONList :: Value -> Parser [NamedF Maybe a name] #

FromJSON a => FromJSON (NamedF Identity a name) Source # 
Instance details

NFData (f a) => NFData (NamedF f a name) Source # 
Instance details

Methods

rnf :: NamedF f a name -> () #

(KnownSymbol name, Buildable (f a)) => Buildable (NamedF f a name) Source # 
Instance details

Methods

build :: NamedF f a name -> Builder #