Skip to content

Instantly share code, notes, and snippets.

@freakingawesome
Last active June 30, 2017 13:41
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save freakingawesome/9c7d65f540d0eb6de073c08522bf1efd to your computer and use it in GitHub Desktop.
Save freakingawesome/9c7d65f540d0eb6de073c08522bf1efd to your computer and use it in GitHub Desktop.
type Record =
Record
InnerType
InnerType
InnerType
InnerType
InnerType
InnerType
InnerType
InnerType
InnerType
InnerType
InnerType
InnerType
type Index
= Inner1
| Inner2
| Inner3
| Inner4
| Inner5
| Inner6
| Inner7
| Inner8
| Inner9
| Inner10
| Inner11
| Inner12
toList : Record -> List InnerType
toList (Record i1 i2 i3 i4 i5 i6 i7 i8 i9 i10 i11 i12) =
[ i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12 ]
get : Index -> Record -> InnerType
get i (Record i1 i2 i3 i4 i5 i6 i7 i8 i9 i10 i11 i12) =
case i of
Inner1 -> i1
Inner2 -> i2
Inner3 -> i3
Inner4 -> i4
Inner5 -> i5
Inner6 -> i6
Inner7 -> i7
Inner8 -> i8
Inner9 -> i9
Inner10 -> i10
Inner11 -> i11
Inner12 -> i12
set : Index -> InnerType -> Record -> Record
set i val (Record i1 i2 i3 i4 i5 i6 i7 i8 i9 i10 i11 i12) =
case i of
Inner1 -> Record val i2 i3 i4 i5 i6 i7 i8 i9 i10 i11 i12
Inner2 -> Record i1 val i3 i4 i5 i6 i7 i8 i9 i10 i11 i12
Inner3 -> Record i1 i2 val i4 i5 i6 i7 i8 i9 i10 i11 i12
Inner4 -> Record i1 i2 i3 val i5 i6 i7 i8 i9 i10 i11 i12
Inner5 -> Record i1 i2 i3 i4 val i6 i7 i8 i9 i10 i11 i12
Inner6 -> Record i1 i2 i3 i4 i5 val i7 i8 i9 i10 i11 i12
Inner7 -> Record i1 i2 i3 i4 i5 i6 val i8 i9 i10 i11 i12
Inner8 -> Record i1 i2 i3 i4 i5 i6 i7 val i9 i10 i11 i12
Inner9 -> Record i1 i2 i3 i4 i5 i6 i7 i8 val i10 i11 i12
Inner10 -> Record i1 i2 i3 i4 i5 i6 i7 i8 i9 val i11 i12
Inner11 -> Record i1 i2 i3 i4 i5 i6 i7 i8 i9 i10 val i12
Inner12 -> Record i1 i2 i3 i4 i5 i6 i7 i8 i9 i10 i11 val
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment