@MathematicsOrchid , , , GADT, . XY, , . , GADT.
, ParsedLipid a, a, ; a . ParsedLipid FA ParsedLipid PA, .
, GADT - - .
data AParsedLipid = forall a. AParsedLipid (ParsedLipid a)
a AParsedLipid, . AParsedLipid ParsedLipid, . - , , , GADT.
, , , . ParsedLipid a -> a . , , , - , .
AParsedLipid, ParsedLipid , , a - FA, PA.
showFA :: FA -> String
showFA = ...
showPA :: PA -> String
showPA = ...
showLipid :: AParsedLipid -> String
showLipid (AParsedLipid (ParsedFA x)) = "AParsedLipid (ParsedFA "++ showFA x ++")"
showLipid (AParsedLipid (ParsedPA x)) = "AParsedLipid (ParsedPA "++ showPA x ++")"
, a AParsedLipid , . ; " ".
AParsedLipid, , , ParsedLipid . PA FA, .
parser :: Parser AParsedLipid
parser = AParsedLipid <$> (fmap ParsedFA faParser <|> fmap ParsedPA paParser)
GADT . ParsedLipid - AParsedLipid, Either FA PA. ( , .) , GADT , - , . , Yampa extensible-effects GADT . , , , , ( ). , FRP- .