diff record.ur @ 28:f55f66c6fdee

Migrate ap method to Record module.
author Edward Z. Yang <ezyang@mit.edu>
date Thu, 26 Jul 2012 16:48:37 -0400
parents 6cd839818393
children
line wrap: on
line diff
--- a/record.ur	Thu Jul 26 16:39:02 2012 -0400
+++ b/record.ur	Thu Jul 26 16:48:37 2012 -0400
@@ -12,3 +12,7 @@
      (fn [nm ::_] [t ::_] [r ::_] [[nm] ~ r] isEq x y acc =>
          acc && @eq isEq x y)
      True fl eqs r1 r2
+
+fun ap [K] [tf1 :: K -> Type] [tf2 :: K -> Type]
+       [r ::: {K}] (fl : folder r) (fs : $(map (fn t => tf1 t -> tf2 t) r)) (xs : $(map tf1 r))
+  = @map2 [fn t => tf1 t -> tf2 t] [fn t => tf1 t] [tf2] (fn [t] f x => f x) fl fs xs