Îõ³h&~P Safe-Inferred1ÌÙÚë? constableA constraint enforcing that 7 is only used with non-partially applied constructors. constableA pattern synonym for Ô that upholds the fully applied constructor invariant for its second type argument. constableUnwraps . Throws a type error if that . has a function type for its second argument. constableSmart constructor for ƒ that enforces that the value it contains is built from a value of the result type. This provides an extra measure of type safety. ¨data Summable = MkSummable { s1 :: Int , s2 :: Double , s3 :: Integer } deriving (Show) test :: Summable test = Summable { s1 = 1 , s2 = 2 , s3 = 3 }   MkSummable * mkConst (s1 test) (Sum . fromIntegral)  mkConst (s2 test) Sum ( mkConst (s3 test) (Sum . fromIntegral)  constableSmart constructor for  like Í but where the argument is the result type applied to some type constructor f.    (constable-0.1.0.0-8CfOxWq4qD0LCxlsYPdVtV ConstablebaseData.Functor.ConstConstFullyAppliedConst getConstSafemkConstmkConstFGHC.Base$ Data.Functor<$><*>