@hackage ruin0.1.0.0

Pliable records

  • Categories

    • License

      BSD-3-Clause

    • Maintainer

      nicolas.frisby@gmail.com

    • Versions

    ruin is a DSL for working with record types. It focuses on converting between conventionally-declared record types and supporting named function arguments.

    • Uses -XOverloadedLabels, so that #x is a first-class label for the field named x.

    • Provides GHC.Generics defaults.

    • Named arguments: \[rna|x y z] -> (x,y,z) inhabits ("x" :@ a,"y" :@ b,"z" :@ c) -> (a,b,c).

    • Relies on -XDuplicateRecordFields; the generic defaults only work if record selector names do not have distinguishing prefices.

    • Custom type errors, such as ruin: Could not find the field `x' in the type ...

    • Data.Ruin.R provides anonymous record types where the order of fields is irrelevant.

    See the Data.Ruin module for an overview.