module ASCII.Lift (Lift (..)) where
import ASCII.Case (Case (..))
import ASCII.CaseRefinement (ASCII'case)
import ASCII.Char (Char)
import ASCII.Refinement (ASCII)
import ASCII.Superset (CharSuperset, StringSuperset)
import qualified ASCII.CaseRefinement as CaseRefinement
import qualified ASCII.Refinement as Refinement
import qualified ASCII.Superset as S
import qualified Prelude
import Data.Function ((.))
class Lift subset superset where
lift :: subset -> superset
instance Lift (ASCII superset) superset where lift :: ASCII superset -> superset
lift = forall superset. ASCII superset -> superset
Refinement.lift
instance Lift (ASCII'case letterCase superset) superset where lift :: ASCII'case letterCase superset -> superset
lift = forall (letterCase :: Case) superset.
ASCII'case letterCase superset -> superset
CaseRefinement.lift
instance CharSuperset superset => Lift Char superset where lift :: Char -> superset
lift = forall char. FromChar char => Char -> char
S.fromChar
instance StringSuperset superset => Lift [Char] superset where lift :: [Char] -> superset
lift = forall string. FromString string => [Char] -> string
S.fromCharList