open-typerep-0.5: Open type representations and dynamic types

Safe HaskellNone
LanguageHaskell2010

Language.Syntactic.TypeRep.TupleConversion

Description

Construction and elimination of tuples

Something similar can be achieved using the Syntactic instances from Language.Syntactic.TypeRep.Sugar.TupleTR, e.g:

sel1' :: forall sym t a b
    .  ( Typeable t a
       , Typeable t b
       , Tuple     :<: sym
       , TupleType :<: t
       )
    => ASTF (sym :&: TypeRep t) (a,b) -> ASTF (sym :&: TypeRep t) a
sel1' ab = a
  where
    (a, _ :: ASTF (sym :&: TypeRep t) b) = sugar ab

But the point of this module is to do it without the Typeable constraint.

Documentation

sel1 :: (Tuple :<: sym, TupleType :<: t) => ASTF (sym :&: TypeRep t) tup -> ASTF (sym :&: TypeRep t) (Sel1 tup) Source

sel2 :: (Tuple :<: sym, TupleType :<: t) => ASTF (sym :&: TypeRep t) tup -> ASTF (sym :&: TypeRep t) (Sel2 tup) Source

sel3 :: (Tuple :<: sym, TupleType :<: t) => ASTF (sym :&: TypeRep t) tup -> ASTF (sym :&: TypeRep t) (Sel3 tup) Source

sel4 :: (Tuple :<: sym, TupleType :<: t) => ASTF (sym :&: TypeRep t) tup -> ASTF (sym :&: TypeRep t) (Sel4 tup) Source

sel5 :: (Tuple :<: sym, TupleType :<: t) => ASTF (sym :&: TypeRep t) tup -> ASTF (sym :&: TypeRep t) (Sel5 tup) Source

sel6 :: (Tuple :<: sym, TupleType :<: t) => ASTF (sym :&: TypeRep t) tup -> ASTF (sym :&: TypeRep t) (Sel6 tup) Source

sel7 :: (Tuple :<: sym, TupleType :<: t) => ASTF (sym :&: TypeRep t) tup -> ASTF (sym :&: TypeRep t) (Sel7 tup) Source

sel8 :: (Tuple :<: sym, TupleType :<: t) => ASTF (sym :&: TypeRep t) tup -> ASTF (sym :&: TypeRep t) (Sel8 tup) Source

sel9 :: (Tuple :<: sym, TupleType :<: t) => ASTF (sym :&: TypeRep t) tup -> ASTF (sym :&: TypeRep t) (Sel9 tup) Source

sel10 :: (Tuple :<: sym, TupleType :<: t) => ASTF (sym :&: TypeRep t) tup -> ASTF (sym :&: TypeRep t) (Sel10 tup) Source

sel11 :: (Tuple :<: sym, TupleType :<: t) => ASTF (sym :&: TypeRep t) tup -> ASTF (sym :&: TypeRep t) (Sel11 tup) Source

sel12 :: (Tuple :<: sym, TupleType :<: t) => ASTF (sym :&: TypeRep t) tup -> ASTF (sym :&: TypeRep t) (Sel12 tup) Source

sel13 :: (Tuple :<: sym, TupleType :<: t) => ASTF (sym :&: TypeRep t) tup -> ASTF (sym :&: TypeRep t) (Sel13 tup) Source

sel14 :: (Tuple :<: sym, TupleType :<: t) => ASTF (sym :&: TypeRep t) tup -> ASTF (sym :&: TypeRep t) (Sel14 tup) Source

sel15 :: (Tuple :<: sym, TupleType :<: t) => ASTF (sym :&: TypeRep t) tup -> ASTF (sym :&: TypeRep t) (Sel15 tup) Source

tup2 :: (Tuple :<: sym, TupleType :<: t) => ASTF (sym :&: TypeRep t) a -> ASTF (sym :&: TypeRep t) b -> ASTF (sym :&: TypeRep t) (a, b) Source

tup3 :: (Tuple :<: sym, TupleType :<: t) => ASTF (sym :&: TypeRep t) a -> ASTF (sym :&: TypeRep t) b -> ASTF (sym :&: TypeRep t) c -> ASTF (sym :&: TypeRep t) (a, b, c) Source

tup4 :: (Tuple :<: sym, TupleType :<: t) => ASTF (sym :&: TypeRep t) a -> ASTF (sym :&: TypeRep t) b -> ASTF (sym :&: TypeRep t) c -> ASTF (sym :&: TypeRep t) d -> ASTF (sym :&: TypeRep t) (a, b, c, d) Source

tup5 :: (Tuple :<: sym, TupleType :<: t) => ASTF (sym :&: TypeRep t) a -> ASTF (sym :&: TypeRep t) b -> ASTF (sym :&: TypeRep t) c -> ASTF (sym :&: TypeRep t) d -> ASTF (sym :&: TypeRep t) e -> ASTF (sym :&: TypeRep t) (a, b, c, d, e) Source

tup6 :: (Tuple :<: sym, TupleType :<: t) => ASTF (sym :&: TypeRep t) a -> ASTF (sym :&: TypeRep t) b -> ASTF (sym :&: TypeRep t) c -> ASTF (sym :&: TypeRep t) d -> ASTF (sym :&: TypeRep t) e -> ASTF (sym :&: TypeRep t) f -> ASTF (sym :&: TypeRep t) (a, b, c, d, e, f) Source

tup7 :: (Tuple :<: sym, TupleType :<: t) => ASTF (sym :&: TypeRep t) a -> ASTF (sym :&: TypeRep t) b -> ASTF (sym :&: TypeRep t) c -> ASTF (sym :&: TypeRep t) d -> ASTF (sym :&: TypeRep t) e -> ASTF (sym :&: TypeRep t) f -> ASTF (sym :&: TypeRep t) g -> ASTF (sym :&: TypeRep t) (a, b, c, d, e, f, g) Source

tup8 :: (Tuple :<: sym, TupleType :<: t) => ASTF (sym :&: TypeRep t) a -> ASTF (sym :&: TypeRep t) b -> ASTF (sym :&: TypeRep t) c -> ASTF (sym :&: TypeRep t) d -> ASTF (sym :&: TypeRep t) e -> ASTF (sym :&: TypeRep t) f -> ASTF (sym :&: TypeRep t) g -> ASTF (sym :&: TypeRep t) h -> ASTF (sym :&: TypeRep t) (a, b, c, d, e, f, g, h) Source

tup9 :: (Tuple :<: sym, TupleType :<: t) => ASTF (sym :&: TypeRep t) a -> ASTF (sym :&: TypeRep t) b -> ASTF (sym :&: TypeRep t) c -> ASTF (sym :&: TypeRep t) d -> ASTF (sym :&: TypeRep t) e -> ASTF (sym :&: TypeRep t) f -> ASTF (sym :&: TypeRep t) g -> ASTF (sym :&: TypeRep t) h -> ASTF (sym :&: TypeRep t) i -> ASTF (sym :&: TypeRep t) (a, b, c, d, e, f, g, h, i) Source

tup10 :: (Tuple :<: sym, TupleType :<: t) => ASTF (sym :&: TypeRep t) a -> ASTF (sym :&: TypeRep t) b -> ASTF (sym :&: TypeRep t) c -> ASTF (sym :&: TypeRep t) d -> ASTF (sym :&: TypeRep t) e -> ASTF (sym :&: TypeRep t) f -> ASTF (sym :&: TypeRep t) g -> ASTF (sym :&: TypeRep t) h -> ASTF (sym :&: TypeRep t) i -> ASTF (sym :&: TypeRep t) j -> ASTF (sym :&: TypeRep t) (a, b, c, d, e, f, g, h, i, j) Source

tup11 :: (Tuple :<: sym, TupleType :<: t) => ASTF (sym :&: TypeRep t) a -> ASTF (sym :&: TypeRep t) b -> ASTF (sym :&: TypeRep t) c -> ASTF (sym :&: TypeRep t) d -> ASTF (sym :&: TypeRep t) e -> ASTF (sym :&: TypeRep t) f -> ASTF (sym :&: TypeRep t) g -> ASTF (sym :&: TypeRep t) h -> ASTF (sym :&: TypeRep t) i -> ASTF (sym :&: TypeRep t) j -> ASTF (sym :&: TypeRep t) k -> ASTF (sym :&: TypeRep t) (a, b, c, d, e, f, g, h, i, j, k) Source

tup12 :: (Tuple :<: sym, TupleType :<: t) => ASTF (sym :&: TypeRep t) a -> ASTF (sym :&: TypeRep t) b -> ASTF (sym :&: TypeRep t) c -> ASTF (sym :&: TypeRep t) d -> ASTF (sym :&: TypeRep t) e -> ASTF (sym :&: TypeRep t) f -> ASTF (sym :&: TypeRep t) g -> ASTF (sym :&: TypeRep t) h -> ASTF (sym :&: TypeRep t) i -> ASTF (sym :&: TypeRep t) j -> ASTF (sym :&: TypeRep t) k -> ASTF (sym :&: TypeRep t) l -> ASTF (sym :&: TypeRep t) (a, b, c, d, e, f, g, h, i, j, k, l) Source

tup13 :: (Tuple :<: sym, TupleType :<: t) => ASTF (sym :&: TypeRep t) a -> ASTF (sym :&: TypeRep t) b -> ASTF (sym :&: TypeRep t) c -> ASTF (sym :&: TypeRep t) d -> ASTF (sym :&: TypeRep t) e -> ASTF (sym :&: TypeRep t) f -> ASTF (sym :&: TypeRep t) g -> ASTF (sym :&: TypeRep t) h -> ASTF (sym :&: TypeRep t) i -> ASTF (sym :&: TypeRep t) j -> ASTF (sym :&: TypeRep t) k -> ASTF (sym :&: TypeRep t) l -> ASTF (sym :&: TypeRep t) m -> ASTF (sym :&: TypeRep t) (a, b, c, d, e, f, g, h, i, j, k, l, m) Source

tup14 :: (Tuple :<: sym, TupleType :<: t) => ASTF (sym :&: TypeRep t) a -> ASTF (sym :&: TypeRep t) b -> ASTF (sym :&: TypeRep t) c -> ASTF (sym :&: TypeRep t) d -> ASTF (sym :&: TypeRep t) e -> ASTF (sym :&: TypeRep t) f -> ASTF (sym :&: TypeRep t) g -> ASTF (sym :&: TypeRep t) h -> ASTF (sym :&: TypeRep t) i -> ASTF (sym :&: TypeRep t) j -> ASTF (sym :&: TypeRep t) k -> ASTF (sym :&: TypeRep t) l -> ASTF (sym :&: TypeRep t) m -> ASTF (sym :&: TypeRep t) n -> ASTF (sym :&: TypeRep t) (a, b, c, d, e, f, g, h, i, j, k, l, m, n) Source

tup15 :: (Tuple :<: sym, TupleType :<: t) => ASTF (sym :&: TypeRep t) a -> ASTF (sym :&: TypeRep t) b -> ASTF (sym :&: TypeRep t) c -> ASTF (sym :&: TypeRep t) d -> ASTF (sym :&: TypeRep t) e -> ASTF (sym :&: TypeRep t) f -> ASTF (sym :&: TypeRep t) g -> ASTF (sym :&: TypeRep t) h -> ASTF (sym :&: TypeRep t) i -> ASTF (sym :&: TypeRep t) j -> ASTF (sym :&: TypeRep t) k -> ASTF (sym :&: TypeRep t) l -> ASTF (sym :&: TypeRep t) m -> ASTF (sym :&: TypeRep t) n -> ASTF (sym :&: TypeRep t) o -> ASTF (sym :&: TypeRep t) (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) Source