data RE : TypeExactly : Char -> REOneOf : List Char -> RETo : Char -> Char -> REAny : REConcat : RE -> RE -> REAlt : RE -> RE -> REMaybe : RE -> REGroup : RE -> RERep0 : RE -> RERep1 : RE -> REKeep : RE -> REspecialChars : StringmapChar : Char -> StringisUnit : RE -> BoolisSemiUnit : RE -> Boolpshow : (RE -> Bool) -> RE -> StringIf condintion is satisfied show in parentheses
showAux : RE -> StringCodeShapeREKeep : RE -> CodeCodeShapeRE : RE -> CodeTypeREKeep : RE -> TypeTypeRE : RE -> TypepairEq : (a, x) = (b, y) -> (a = b, x = y)eitherToMaybeL : Either a () -> Maybe aeitherToMaybeR : Either () a -> Maybe aaltTyREKeep : (re1 : RE) -> (re2 : RE) -> SimplifyCode (CodeShapeREKeep re1) = a -> SimplifyCode (CodeShapeREKeep re2) = b -> TyRE (Either (Sem a) (Sem b))concatTyREKeep : (re1 : RE) -> (re2 : RE) -> TyRE (TypeREKeep re1, TypeREKeep re2)compileKeep : (re : RE) -> TyRE (TypeREKeep re)altTyRE : (re1 : RE) -> (re2 : RE) -> SimplifyCode (CodeShapeRE re1) = a -> SimplifyCode (CodeShapeRE re2) = b -> TyRE (Either (Sem a) (Sem b))concatTyRE : (re1 : RE) -> (re2 : RE) -> TyRE (TypeRE re1, TypeRE re2)compile : (re : RE) -> TyRE (TypeRE re)