C Double Double | |

C Float Float | |

C Int Int | |

C Integer Integer | |

(C a, C a v) => C a [v] | |

(C a, C a v) => C a (T v) | |

(C a, C a v0, C a v1) => C a (v0, v1) | |

(Ord i, Eq a, Eq v, C a v) => C a (Map i v) | |

(C a, C a v0, C a v1, C a v2) => C a (v0, v1, v2) | |

(C a, C a) => C (T a) (T a) | |

C a v => C (T a) (T v) | |