module Conversions.ToPurescript.ClassDef where import qualified SyntaxTrees.Haskell.ClassDef as H import qualified SyntaxTrees.Purescript.ClassDef as P import Conversions.ToPurescript.Common (class') import Conversions.ToPurescript.DataDef (derivingStrategy) import Conversions.ToPurescript.FnDef (fnDefOrSig) import Conversions.ToPurescript.Type (anyKindedType, classConstraint, typeParam) classDef :: H.ClassDef -> P.ClassDef classDef :: ClassDef -> ClassDef classDef (H.ClassDef [ClassConstraint] x Class y [TypeParam] z [FnDefOrSig] t) = [ClassConstraint] -> Class -> [TypeParam] -> [FnDefOrSig] -> ClassDef P.ClassDef (ClassConstraint -> ClassConstraint classConstraint forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> [ClassConstraint] x) (Class -> Class class' Class y) (TypeParam -> TypeParam typeParam forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> [TypeParam] z) (FnDefOrSig -> FnDefOrSig fnDefOrSig forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> [FnDefOrSig] t) instanceDef :: H.InstanceDef -> P.InstanceDef instanceDef :: InstanceDef -> InstanceDef instanceDef (H.InstanceDef [ClassConstraint] x Class y [AnyKindedType] z [FnDefOrSig] t) = [ClassConstraint] -> Maybe Var -> Class -> [AnyKindedType] -> [FnDefOrSig] -> InstanceDef P.InstanceDef (ClassConstraint -> ClassConstraint classConstraint forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> [ClassConstraint] x) forall a. Maybe a Nothing (Class -> Class class' Class y) (AnyKindedType -> AnyKindedType anyKindedType forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> [AnyKindedType] z) (FnDefOrSig -> FnDefOrSig fnDefOrSig forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> [FnDefOrSig] t) derivingDef :: H.DerivingDef -> P.DerivingDef derivingDef :: DerivingDef -> DerivingDef derivingDef (H.DerivingDef DerivingStrategy x [ClassConstraint] y Class z [AnyKindedType] t Maybe Class _) = DerivingStrategy -> [ClassConstraint] -> Maybe Var -> Class -> [AnyKindedType] -> DerivingDef P.DerivingDef (DerivingStrategy -> DerivingStrategy derivingStrategy DerivingStrategy x) (ClassConstraint -> ClassConstraint classConstraint forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> [ClassConstraint] y) forall a. Maybe a Nothing (Class -> Class class' Class z) (AnyKindedType -> AnyKindedType anyKindedType forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> [AnyKindedType] t)