lorentz-0.1.0: EDSL for the Michelson Language

Safe HaskellNone
LanguageHaskell2010

Lorentz.Polymorphic

Description

Type families from Polymorphic lifted to Haskell types.

Synopsis

Documentation

class (MemOp (ToT c), ToT (MemOpKeyHs c) ~ Tc (MemOpKey (ToT c))) => MemOpHs c Source #

Lifted MemOpKey.

Associated Types

type MemOpKeyHs c :: Type Source #

Instances
IsComparable e => MemOpHs (Set e) Source # 
Instance details

Defined in Lorentz.Polymorphic

Associated Types

type MemOpKeyHs (Set e) :: Type Source #

MemOpHs (UStore a) Source # 
Instance details

Defined in Lorentz.UStore.Types

Associated Types

type MemOpKeyHs (UStore a) :: Type Source #

IsComparable k => MemOpHs (Map k v) Source # 
Instance details

Defined in Lorentz.Polymorphic

Associated Types

type MemOpKeyHs (Map k v) :: Type Source #

IsComparable k => MemOpHs (BigMap k v) Source # 
Instance details

Defined in Lorentz.Polymorphic

Associated Types

type MemOpKeyHs (BigMap k v) :: Type Source #

class (MapOp (ToT c), ToT (MapOpInpHs c) ~ MapOpInp (ToT c), ToT (MapOpResHs c ()) ~ MapOpRes (ToT c) (ToT ())) => MapOpHs c Source #

Lifted MapOp.

Associated Types

type MapOpInpHs c :: Type Source #

type MapOpResHs c :: Type -> Type Source #

Instances
MapOpHs [e] Source # 
Instance details

Defined in Lorentz.Polymorphic

Associated Types

type MapOpInpHs [e] :: Type Source #

type MapOpResHs [e] :: Type -> Type Source #

IsComparable k => MapOpHs (Map k v) Source # 
Instance details

Defined in Lorentz.Polymorphic

Associated Types

type MapOpInpHs (Map k v) :: Type Source #

type MapOpResHs (Map k v) :: Type -> Type Source #

class (IterOp (ToT c), ToT (IterOpElHs c) ~ IterOpEl (ToT c)) => IterOpHs c Source #

Lifted IterOp.

Associated Types

type IterOpElHs c :: Type Source #

Instances
IterOpHs [e] Source # 
Instance details

Defined in Lorentz.Polymorphic

Associated Types

type IterOpElHs [e] :: Type Source #

IsComparable e => IterOpHs (Set e) Source # 
Instance details

Defined in Lorentz.Polymorphic

Associated Types

type IterOpElHs (Set e) :: Type Source #

IsComparable k => IterOpHs (Map k v) Source # 
Instance details

Defined in Lorentz.Polymorphic

Associated Types

type IterOpElHs (Map k v) :: Type Source #

class SizeOp (ToT c) => SizeOpHs c Source #

Lifted SizeOp.

This could be just a constraint alias, but to avoid T types appearance in error messages we make a full type class with concrete instances.

Instances
SizeOpHs ByteString Source # 
Instance details

Defined in Lorentz.Polymorphic

SizeOpHs MText Source # 
Instance details

Defined in Lorentz.Polymorphic

SizeOpHs [a] Source # 
Instance details

Defined in Lorentz.Polymorphic

SizeOpHs (Set a) Source # 
Instance details

Defined in Lorentz.Polymorphic

SizeOpHs (Map k v) Source # 
Instance details

Defined in Lorentz.Polymorphic

class (UpdOp (ToT c), ToT (UpdOpKeyHs c) ~ Tc (UpdOpKey (ToT c)), ToT (UpdOpParamsHs c) ~ UpdOpParams (ToT c)) => UpdOpHs c Source #

Lifted UpdOp.

Associated Types

type UpdOpKeyHs c :: Type Source #

type UpdOpParamsHs c :: Type Source #

Instances
IsComparable a => UpdOpHs (Set a) Source # 
Instance details

Defined in Lorentz.Polymorphic

Associated Types

type UpdOpKeyHs (Set a) :: Type Source #

type UpdOpParamsHs (Set a) :: Type Source #

UpdOpHs (UStore a) Source # 
Instance details

Defined in Lorentz.UStore.Types

Associated Types

type UpdOpKeyHs (UStore a) :: Type Source #

type UpdOpParamsHs (UStore a) :: Type Source #

IsComparable k => UpdOpHs (Map k v) Source # 
Instance details

Defined in Lorentz.Polymorphic

Associated Types

type UpdOpKeyHs (Map k v) :: Type Source #

type UpdOpParamsHs (Map k v) :: Type Source #

IsComparable k => UpdOpHs (BigMap k v) Source # 
Instance details

Defined in Lorentz.Polymorphic

Associated Types

type UpdOpKeyHs (BigMap k v) :: Type Source #

type UpdOpParamsHs (BigMap k v) :: Type Source #

class (GetOp (ToT c), ToT (GetOpKeyHs c) ~ Tc (GetOpKey (ToT c)), ToT (GetOpValHs c) ~ GetOpVal (ToT c)) => GetOpHs c Source #

Lifted GetOp.

Associated Types

type GetOpKeyHs c :: Type Source #

type GetOpValHs c :: Type Source #

Instances
GetOpHs (UStore a) Source # 
Instance details

Defined in Lorentz.UStore.Types

Associated Types

type GetOpKeyHs (UStore a) :: Type Source #

type GetOpValHs (UStore a) :: Type Source #

IsComparable k => GetOpHs (Map k v) Source # 
Instance details

Defined in Lorentz.Polymorphic

Associated Types

type GetOpKeyHs (Map k v) :: Type Source #

type GetOpValHs (Map k v) :: Type Source #

IsComparable k => GetOpHs (BigMap k v) Source # 
Instance details

Defined in Lorentz.Polymorphic

Associated Types

type GetOpKeyHs (BigMap k v) :: Type Source #

type GetOpValHs (BigMap k v) :: Type Source #

class ConcatOp (ToT c) => ConcatOpHs c Source #

Lifted ConcatOp.

Instances
ConcatOpHs ByteString Source # 
Instance details

Defined in Lorentz.Polymorphic

ConcatOpHs MText Source # 
Instance details

Defined in Lorentz.Polymorphic

class SliceOp (ToT c) => SliceOpHs c Source #

Lifted SliceOp.

Instances
SliceOpHs ByteString Source # 
Instance details

Defined in Lorentz.Polymorphic

SliceOpHs MText Source # 
Instance details

Defined in Lorentz.Polymorphic

class (EDivOp (ToCT n) (ToCT m), IsComparable n, IsComparable m, ToT (EDivOpResHs n m) ~ Tc (EDivOpRes (ToCT n) (ToCT m)), ToT (EModOpResHs n m) ~ Tc (EModOpRes (ToCT n) (ToCT m))) => EDivOpHs n m Source #

Lifted EDivOp.

Associated Types

type EDivOpResHs n m :: Type Source #

type EModOpResHs n m :: Type Source #

Instances
EDivOpHs Integer Integer Source # 
Instance details

Defined in Lorentz.Polymorphic

EDivOpHs Integer Natural Source # 
Instance details

Defined in Lorentz.Polymorphic

EDivOpHs Natural Integer Source # 
Instance details

Defined in Lorentz.Polymorphic

EDivOpHs Natural Natural Source # 
Instance details

Defined in Lorentz.Polymorphic

EDivOpHs Mutez Natural Source # 
Instance details

Defined in Lorentz.Polymorphic

EDivOpHs Mutez Mutez Source # 
Instance details

Defined in Lorentz.Polymorphic

type family IsoMapOpRes c b where ... Source #

A useful property which holds for reasonable MapOp instances.

It's a separate thing from MapOpHs because it mentions b type parameter.

Equations

IsoMapOpRes c b = ToT (MapOpResHs c b) ~ MapOpRes (ToT c) (ToT b)