к
Size: a a a
ЗП
ЗП
class IsSymbol l <= AsPrism l s a | s l -> a where
_Prism :: forall proxy. proxy l -> Prism' s a
-- type AsAdd s a = AsPrism "add" s (Tuple a a)
_Add :: forall s a. AsPrism "add" s (Tuple a a) => Prism' s (Tuple a a)
_Add = _Prism _add
instance asPrismAddF ∷ AsPrism "add" (AddF a) (Tuple a a) where
_Prism _ = prism' (uncurry AddF) (\(AddF a b) -> Just (Tuple a b))
else instance asPrismVariant :: (Functor f, AsPrism "add" (f a) (Tuple a a), TypeEquals (VariantF ( add :: VF.FProxy f | tail ) a) (VariantF row a)) => AsPrism "add" (VariantF row a) (Tuple a a) where
_Prism _ = dimap TE.from TE.to <<< _VariantF _add <<< _Add
else instance asPrismFMu :: (Functor f, AsPrism "add" (f (Mu f)) (Tuple a a)) => AsPrism "add" (Mu f) (Tuple a a) where
_Prism _ = re _Mu <<< _Add
class AsAddF (s :: Type) (a :: Type) | s -> a where
_AddF ∷ Prism' s (Tuple a a)
instance asAddFAddF ∷ AsAddF (AddF a) a where
_AddF = prism' (uncurry AddF) (\(AddF a b) -> Just (Tuple a b))
else instance asAddFVariant :: (Functor f, AsAddF (f a) a, TypeEquals (VariantF ( add :: VF.FProxy f | tail ) a) (VariantF row a)) => AsAddF (VariantF row a) a where
_AddF = dimap TE.from TE.to <<< _VariantF _add <<< _AddF
else instance asAddFMu :: (Functor f, AsAddF (f (Mu f)) a) => AsAddF (Mu f) a where
_AddF = re _Mu <<< _AddF
ЗП
ЗП
K
ЗП
Expr
type TExpr = Cofree ExprNF Type
Type
это твоя аннотацияK
Expr
type TExpr = Cofree ExprNF Type
Type
это твоя аннотацияDecl
его пропихнуть?ЗП
ЗП
ЗП
AV
foo .~ bar (текст на несколько строк)
MK
AV
AV
MK
AV