Skip to content

Commit

Permalink
feat: Export Array from the prelude
Browse files Browse the repository at this point in the history
  • Loading branch information
Marwes committed Dec 11, 2019
1 parent b14fc18 commit 16eb345
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 6 deletions.
10 changes: 6 additions & 4 deletions src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -798,15 +798,17 @@ let { IO, Num, Eq, Ord, Show, Functor, Applicative, Monad, Option, Bool, ? } = _
let { (+), (-), (*), (/), negate, (==), (/=), (<), (<=), (>=), (>), (++), show, not, flat_map } = __implicit_prelude
let __implicit_bool @ { ? } = import! std.bool
let { ? } = import! std.bool
let { ? } = import! std.option
let __implicit_float @ { ? } = import! std.float
let { ? } = import! std.float
let __implicit_int @ { ? } = import! std.int
let { ? } = import! std.int
let __implicit_string @ { ? } = import! std.string
let { ? } = import! std.string
let { ? } = import! std.array
let { error } = import! std.prim
Expand Down
9 changes: 7 additions & 2 deletions std/array.glu
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
//@NO-IMPLICIT-PRELUDE
//! A dynamically sized contigous sequence.

let prim = import! std.array.prim
let prim @ { Array } = import! std.array.prim
let int @ { ? } = import! std.int
let { (++) } = import! std.string
let prelude @ { Num, Eq, Ord, Show, Functor, (<), (==), (/=), (-), (+) } = import! std.prelude
let { Num, (-), (+) } = import! std.num
let { Eq, Ord, (<), (==), (/=) } = import! std.cmp
let { Show } = import! std.show
let { Functor } = import! std.functor
let { Bool, Ordering, compare, min } = import! std.cmp
let { Foldable } = import! std.foldable
let { Traversable } = import! std.traversable
Expand Down Expand Up @@ -115,6 +118,8 @@ let monoid : Monoid (Array a) = { semigroup, empty = [] }
let is_empty array = prim.len array == 0

{
Array,

eq,
ord,
show,
Expand Down
3 changes: 3 additions & 0 deletions std/prelude.glu
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ let { Show, show } = import! std.show
let { Category, id, compose } = import! std.category
let { Num, (+), (-), (*), (/), negate } = import! std.num
let { Bool, not } = import! std.bool
let { Array } = import! std.array
let { (++) } = import! std.string
let { error } = import! std.prim
let { flat_map } = import! std.monad
Expand Down Expand Up @@ -57,6 +58,8 @@ let { flat_map } = import! std.monad
Option,
Bool,

Array,

(++),

not,
Expand Down
1 change: 1 addition & 0 deletions vm/src/primitives.rs
Original file line number Diff line number Diff line change
Expand Up @@ -522,6 +522,7 @@ pub fn load_array(vm: &Thread) -> Result<ExternModule> {
ExternModule::new(
vm,
record! {
type Array a => Array<A>,
len => primitive!(1, std::array::prim::len),
index => primitive!(2, std::array::prim::index),
append => primitive!(2, std::array::prim::append),
Expand Down

0 comments on commit 16eb345

Please sign in to comment.